掲示板に投稿編集機能付けたい
質問の補足ができないので、新たに掲載します。
掲示板に投稿編集機能が無いので、付けようと奮闘しています。
書き込み時に削除PASSを入力するようになっています。
それを利用して投稿編集機能を付けたいです。
以下がユーザーの記事削除処理の部分ですが、
elsif ($in{'action'} eq 'usr_kill') { &kill_action; }##←始めの部分
記事表示部分↓↓↓
<FORM method="$method" action="$cgifile">
<INPUT type="hidden" name="action" value="usr_kill">
<INPUT type="hidden" name="sex" value="$in{'sex'}">
<BR>
<TABLE cellspacing="0" width="200" border="0">
<TR align="left"><TD nowrap colspan="3"><B>【記事削除フォーム】</B></TD></TR>
<TR><td nowrap align="right">記事No/</TD>
<TD><input size="4" type="text" name="number"></TD></TR>
<TR><td nowrap align="right">パスワード/</TD>
<TD nowrap><INPUT size="10" type="password" name="pass">
<INPUT type="submit" value="削除"></TD></TR>
</TABLE></FORM>
下の方にあるルーチン↓↓↓
###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
## SUB >>> ユーザー記事削除処理
###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub kill_action {
if ($in{'number'} eq "") { &error("記事Noを入力してください"); }
elsif ($in{'number'} =~ /\D/) { &error("記事Noは半角数字で入力してください"); }
elsif ($in{'pass'} eq "") { &error("パスワードを入力してください"); }
&lock1;
if ($in{'sex'} eq '0') { &mens_read("lock2"); }
elsif ($in{'sex'} eq '1') { &ladys_read("lock2"); }
#--パスワードを暗号化--#
$crypted = crypt($in{'pass'}, "xx");
#--削除対象データが見つかるまでループ--#
$flag1 = 0;
$flag2 = 0;
foreach $line (@DATA) {
($no,$name,$mail,$age,$state,$comment,$hoop,$risou,$max,$date,$H_A,$m_pass,$looks) = split(/\,/, $line);
if ($in{'number'} eq "$no") {
$flag1 = 1;
chomp $m_pass;
if ($crypted eq "$m_pass" || $in{'pass'} eq "$master_key") {
$flag2 = 1;
$line =~ s/.*\n//;
last;
} else { &lock2; &error("パスワードが一致しません"); }
}
}
#--削除対象Noが見つからなかった場合のエラー処理ー--#
unless ($flag1) { &lock2; &error("記事No$in{'number'}が見つかりません"); }
if ($flag2) {
if ($in{'sex'} eq "0") {
if (!open(OUT,">$mensfile")) {
&lock2;
&error("$mensfile ファイルオープンエラー");
}
print OUT @DATA;
close(OUT);
}
elsif ($in{'sex'} eq "1") {
if (!open(OUT,">$ladysfile")) {
&lock2;
&error("$ladysfile ファイルオープンエラー");
}
print OUT @DATA;
close(OUT);
}
&lock2;
#--削除に成功したら完了メッセージを表示--#
&html_head;
&title;
print <<"HERE";
<CENTER><TABLE width="560">
<TR><TD bgcolor="$top_t_bgc"><CENTER>
<FONT color="$top_t_color"><B>削除完了!</B></FONT>
</CENTER></TD></TR></TABLE><BR><BR>
<FORM method="post" action="$cgifile">
<TABLE cellspacing="0" cellpadding="5" border="1">
<TR><TD nowrap bgcolor="#ffffd9" align="center">
<B>記事No$in{'number'}を削除しました。</B><BR><BR>
<INPUT type="submit" value=" TOP "></TD></TR>
</TABLE></FORM>
HERE
&html_footer;
exit;
}
exit;
}
これに対しての回答が下記の一件ですが、
↓↓↓
削除と再登録が簡単に出来れば修正と同じことだと思いますので、
elsif ($in{'action'} eq 'edit') { &edit; }
を追加したらeditの内容は
kill_actionの削除処理を行った後に削除したデータを基にvalueやselectedを使って入力済みの状態にしたin_dataの処理を入れたらOKだと思います
~とのことですが、
プルダウンで選択させているところなどはどうすればいいのでしょう。
あらたにeditのルーチンを作ったとして、
どこからどこを追加して、何を記述してどうやって作れば良いか分かりません。
ズバッと回答して下さる勇者様はおりませんか?