CGI掲示板カスタマイズ~メッセージ送信の上にプロフを付けたい。
現在、CGI掲示板のカスタマイズ中ですが、この掲示板は、投稿者の名前をクリックすると、メッセージ送信フォームが出るようになっています。
そこでこの送信フォーム画面の上部に、その投稿者の文章を表示したく、観覧処理や出力処理の中から必要そうな記述を抜き出し、送信フォーム表示処理の中のルーチンに取り込み、なんとか表示させることには成功したのですが、、その人物の投稿内容ではなく、なぜか1番目の投稿者の内容なのです。以下がそのメッセージ送信フォーム表示処理の内容です。
###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
## SUB >>> メール送信フォーム表示処理
###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub mailform {
if ($in{'sex'} eq '0') {
if(!open(IN,"$mensfile")) { &error("$mensfile ファイルオープンエラー"); }
}
elsif ($in{'sex'} eq '1') {
if (!open(IN,"$ladysfile")) { &error("$ladysfile ファイルオープンエラー"); }
}
if ($in{'sex'} eq "0") { $word_color = "$boy_color"; }
elsif ($in{'sex'} eq "1") { $word_color = "$girl_color"; }
if ($in{'sex'} eq "0") { $word_color = "$boy_color"; }
elsif ($in{'sex'} eq "1") { $word_color = "$girl_color"; }
if ($in{'sex'} eq "0") { $image = "image/otoko.gif"; }
elsif ($in{'sex'} eq "1") { $image = "image/onna.gif"; }
#--生年月日から年齢を計算--#
$nenrei = "";
unless ($noage) {
$nenrei = $year - $age_y;
if ($age_m > $month) { $nenrei = $nenrei - 1; }
if ($age_m == $month) {
if ($age_d > $mday) { $nenrei = $nenrei - 1; }
}
}
#--メール送信可能数の設定--#
if ($max) { $max = "$max通まで"; }
else { $max = "無制限"; }
$i = 0;
$allno = 0;
while (<IN>) {
($no,$name,$mail,$age,$state,$comment,$hoop,$risou,$max,$date,$H_A,$m_pass,$looks) = split(/\,/,);
($age_y,$age_m,$age_d,$noage) = split(/<>/, $age);
($street,$title) = split(/<>/, $state);
$i++;
$allno++;
if ($i < $start) { next; }
if ($i > $end) { next; }
if ($in{'sex'} eq '0') { $name_color = "$m_namecolor"; }
if ($in{'sex'} eq '1') { $name_color = "$l_namecolor"; }
&member_view;
}
close(IN);
~~~~↑↑↑追加部分↑↑↑~~~~~~~~
&html_head;
&title;
print <<"HERE";
<TABLE width="580">
<TR><TD bgcolor="$top_t_bgc"><CENTER>
<FONT color="$top_t_color"><B>メッセージ送信フォーム</B></FONT>
</TD></TR></TABLE>
~~~~↓↓↓追加部分↓↓↓~~~~~~~~
<TABLE width="98%" cellspacing="0" cellpadding="5" border="$table_border">
<TR><TD bgcolor="$table_bgc">
■<FONT color="$title_color">[<B>$no</B>] <B>$title</B></FONT><BR>
■お名前/ <B>$name</B>さん $date<BR>
■住所/ $street 年齢/ $age_y年$age_m月$age_d日生まれ($nenrei歳)<BR>
■希望/ $risou <FONT color="$word_color">[$hoop]</FONT> ■メール制限数/ <FONT color="$word_color">[$max]</FONT><BR>
<FONT color="$word_color">$comment</FONT></TD></TR></TABLE>
<TABLE height="$kiji_sp" border="0"><TR><TD></TD></TR></TABLE>
HERE
~~~~↑↑↑追加部分↑↑↑~~~~~~~~
以下は元からある送信フォーム。文字数オーバーのため省略
~~~ここまでが送信処理のルーチンですが、
この上部の方の記述をどう記したら、その人物の投稿文が出せるのか、宜しくお願い致します。
お礼
お名前入れるの忘れてしまいました。申し訳ありません。 無事に修正機能を付けることに完成致しました! 少しだけ表示をアレンジして、インライン・フレームの中に取り込めました。 本当に一から教えて頂いて、本当に勉強になりました。 pipipi523さん、本当に有難うございました。 しかし、たかが修正機能と思いきや、 こんなに長い記述が必要だったとは驚きました。 現在まで独学で三年掛けて、HTML、CSS、JavaScript、ホームページビルダー、 ムーバブルタイプ、ムーバブルタイプ・カスタマイズとマスターして来て、 先月に初めて本格的にCGIに手を付け出してここまで来ましたが、 簡単なように見えて、このCGI(Perl)が一番手こずっていることに気づきました。 事情があって書籍も買いに行けず、ネットだけでやって来ましたが、 今回これほどの作業を完成させることができたのは、pipipi523さんのお陰です。 やはり、pipipi523さんがそれ程詳しいのは、その筋の学校出か、お仕事なのでしょうか? 独学でそこまで来られたとしたら、余程の頭脳の持ち主とお察し致します。 これで、ほぼ全ての機能を取り込むことができ、 素晴らしい掲示板になったと感じております。 本当に有難うございました。 私も、困っている方にアドバイスして上げられるよう、 もっともっと磨きを掛けて勉強して行こうと思った次第です。 今回は、pipipi523さんの貴重なお時間を費やして頂いて、 本当に有難うございました!(^^)/ あと一つだけ、 デザイン的なことに関してどうしてもできないことが発生したのですが、 それはまた新しい質問として載せたいと思います。 もし、お暇があれば、アドバイスの程、宜しくお願い致します。 今回は、本当に有難うございました。 まさに、私の中で、本当の勇者様です。 今後とも、お体に気を付けて頑張って下さい!(^^)/
補足
レス有難うございます。 しかし、初心者なもので、 どういうふうに入れれば良いのか↓↓↓ >kill_actionの削除処理を行った後に削除したデータを基に >valueやselectedを使って入力済みの状態にしたin_dataの処理を >入れたらOKだと思います。 ちなみに、個別の削除画面というのは出ず、投稿欄の下にある窓に削除パスと記事番号を入れると、そのまま削除されるようになっています。 修正というと記事個別の画面が必要なのではないでしょうか? editのルーチンを作らないと駄目なんでしょうかねえ・・? できれば文で詳しく説明して、 そのままコピヘできるようにしてもらいたいです。 わがままで申し訳かりませんが、お願いします。