• ベストアンサー

CGI掲示板カスタマイズ~メッセージ送信の上にプロフを付けたい。

calltellaの回答

  • calltella
  • ベストアンサー率49% (317/635)
回答No.3

最初からご使用のCGIを聞けばよかったですね。 一番簡単な方法はjewel.cgiの328行目を下記に書き換えてください。 <A href="$cgifile?action=mailform&sex=$in{'sex'}&number=$no&to_name=$name&comment=$comment"><B>$name</B></A>さん $date そして963行目からのHTMLのコメントを表示したい部分に $in{'comment'} と記述してください。 後はやってみればわかると思いますので応用してください。

master999
質問者

補足

手間をお掛けして申し訳ありません。 何度もありがとうございます。 >そして963行目からのHTMLのコメントを表示したい部分に >$in{'comment'}と記述してください。 こちらは、タイトルとコメントだけきちんと表示させられるようになりましたが、 ><A href="$cgifile?action=mailform&sex=$in{'sex'} >&number=$no&to_name=$name&comment=$comment"><B>$name</B></A>さ>ん $date こちらを挿入すると、元の閲覧画面で文字化けや、ホスト表示されたりと、とてもじゃないですが見られる画面ではありません。 うーむ・・・

関連するQ&A

  • 掲示板に投稿編集機能付けたい

    jewel http://www.groo-web.com/jewel.html こちらの掲示板を独学でカスタマイズして使ってますが、 投稿編集機能が無いので、付けようと奮闘しています。 書き込み時にデフォルトで削除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; } または elsif ($in{'action'} eq 'edit2') { &edit2; } なんとかできるように教えて下さい。お願いします。

    • ベストアンサー
    • CGI
  • CGIのカスタマイズについて

    ネットレスキューさんの簡易データベースについて search.cgiの表示部分でテーブルを一つずつ生成させようと思ったのですがエラーが出ます。 どこが悪いのでしょうか? ----------ここから------- foreach $data (@NEW) { ($d,$DATE,$PREF,$NAME,$EMAIL,$HURL,$AGE,$HANDLE,$REM) = split(/\,/,$data); print "<table width="450" border="0" cellspacing="0" cellpadding="0" class="p12_16">\n"; print "<tr>\n"; print "<td colspan="2" bgcolor="#CC0033" height="14"><font color="#FFFFFF">● $NAME</font></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width="70">地域</td>\n"; print "<td width="380">$PREF</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td height="14">Eメール</td>\n"; print "<td><a href=\"mailto:$EMAIL\">$EMAIL</a></td>\n"; print "</tr>\n"; ---中略---- print "<td height="14">内容</td>\n"; print "<td>$REM</td>\n"; print "</tr>\n"; print "</table>\n"; if ($next_num ne '') { while (($key,$val) = each %FORM2) { if ($key ne 'FF') { $buf = "$buf&$key=$val"; } } print "<h3>↓<a href=\"search.cgi?$buf&FF=$next_num\">次の$page件</a></h3>\n"; } } print "</body></html>\n\n"; exit; --------------ここまで----- splitの扱い方が良く分っていません。 御存知の方御指導下さいませ。

    • ベストアンサー
    • CGI
  • CGI コメント欄の文章を行替えしたいのです

    お世話になります。 野球スコアボードのCGIなのですが、コメント欄の文章がどうしても1列になってしまい、行替えができません。 文章で<br>を書き加えると、1行分のみしか表示されず、改行の2行目以降が表示されません。   以下の構成でどのようにすれば、文章の行替えが可能になりますか? アドバイスよろしくお願い致します。 <tr><td colspan=\"2\"> <font color=white>スコアボード<center> <table border=\"1\" bgcolor=\"#009933\" cellspacing=0 bordercolor=\"black\"> "; for($i=0;$i<@score;$i++){ print "<tr>"; @team_score=split(/,/,$score[$i]); if($i eq 0){ print "<tr>"; for($s=0;$s<@team_score;$s++){ if($s eq 0){ print "<td width=80> <font color=\"white\"> <center><i>チーム名 </td>"; }else{ print "<td width=\"20\"> <font color=\"white\"> <center><i>$s </td>"; } } print "<td width=40><font color=\"white\"><center><i>合計</td>"; print "</tr><tr>"; } $point=0; for($j=0;$j<@team_score;$j++){ print "<td><font color=\"white\">"; print"<center>"; if($team eq $team_score[$j]){ print "<b>" } print"$team_score[$j]</td>"; if($j eq 0){ }else{ $point=$point+$team_score[$j]; } } if($cnt[$i-1] eq $j || $i eq 0){ print "<td><font color=\"white\"><center>$point</td>"; }else{ print "<td> <font color=\"white\"><center>× </td> <td> <font color=\"white\"><center>$point </td>"; } print "</tr>"; $cnt[$i]=$j; } print "</table><p></td></tr>"; print "<tr><td bgcolor=\"#778899\" height=100> <font color=white>コメント </td> <td bgcolor=\"#f8f8ff\"> $cmt[$p] </td></tr>"; print "</table>"; print "<p><hr width=500><p>"; } } print " </body></html>"; exit;

    • ベストアンサー
    • CGI
  • 掲示板に投稿編集機能付けたい

    質問の補足ができないので、新たに掲載します。 掲示板に投稿編集機能が無いので、付けようと奮闘しています。 書き込み時に削除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のルーチンを作ったとして、 どこからどこを追加して、何を記述してどうやって作れば良いか分かりません。 ズバッと回答して下さる勇者様はおりませんか?

    • ベストアンサー
    • CGI
  • 掲示板CGIで古い順ではなく新着順で表示させたい

    【CGI名】簡易データベース 【配布先】http://www.rescue.ne.jp/cgi/database/(cgirescue) 仕様では古い順に表示されるのですが、 それを新着順で表示したいのです。 以下の部分を編集すれば良いと思うのですが、どなたかお願いしますm(__)m もし、この部分以外の変更が必要な場合は、大変ご面倒ですが、 上記サイトからダウンロードお願いします。 宜しくお願いします。 foreach $data (@NEW) { ($d,$DATE,$NAME,$EMAIL,$SEX,$AGE,$HANDLE,$PREF,$REM) = split(/\,/,$data); print "<tr>\n"; print "<td nowrap>$DATE</td>\n"; print "<td nowrap>$NAME</td>\n"; print "<td nowrap><a href=\"mailto:$EMAIL\">$EMAIL</a></td>\n"; print "<td nowrap><center>$SEX</center></td>\n"; print "<tdnowrap><center>$AGE</center></td>\n"; print "<td nowrap>$HANDLE</td>\n"; print "<td nowrap>$PREF</td>\n"; print "<td>$REM</td>\n"; print "</tr>\n"; }

    • ベストアンサー
    • CGI
  • 掲示板で親のデータを子に反映させる方法

    スミマセン。基本だと思いますが、教えてください。 Joyful系の掲示板のファイルなのですが、 各記事の親記事にある特定のデータを、 取り出す方法を教えて下さい。 5<>IP<>1234567890<> 3<><>2012/01/12(Thu) 08:42<>ウサギ<>Yahoo<> 5<>3<>2012/01/12(Thu) 09:04<>ネコ<><> 1<><>2012/01/12(Thu) 08:41<>イヌ<>Google<> 2<>1<>2012/01/12(Thu) 08:41<>ウサギ<><> 4<>1<>2012/01/12(Thu) 09:03<>タヌキ<><> こんな感じで、データが記入されるdatファイルがあります。 「1のレスが2・4」「3のレスが5」です。 それで、親記事に「Yahoo」や「Google」というデータが入っているので、 親記事1にレスしてる2・4でも、 親記事に入ってる「Google」といった文字を反映したいのです。 うまく伝えられ無いので、画像にしてみましたので見てやって下さい。 私が見てるプログラムでは、 レスはレスで、「Google」等の文字を探してしまっているので、望む形にならないのです; どうぞ、よろしくお願いします! ↓ざっくり。この辺りの最初の方に、親だけ読み込んで、$search1 とかに、セットできないかと考えています。 ★━━━━━━━━━━━━━━━━━━━━★ local($ipt,$wh,$i,$flag); # 記事を展開 open(IN,"$logfile") || &error("Open Error : $logfile"); $top = <IN>; $i=0; $x=1; $flag=0; # ソート無し:必要最小限だけ読み込み if(!$sort && !$threadsuu){ while(<IN>){ if((split(/<>/))[1] eq "") { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $p_log) { next; } push(@DATA,$_); } } # ソート無し、スレッド表示有り elsif(!$sort && $threadsuu){ @DATA = <IN>; } # ソート有り:全データを読み込んでソート実行 else{ @DATA = <IN>; if($sort == 1){ &ressort; } if($sort == 2){ &nosort; } } close(IN); # 新着スレッドを表示 if($threadsuu || $up_down){ &thread; } # レスの表示制限をする場合には、配列を改造 if($max_res){ &omit; } foreach(@DATA){ ($no,$reno,$date,$name,$mail,$search) = split(/<>/); # ページ処理 if($sort || $threadsuu){ if ($reno eq "") { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $p_log) { next; } } if (!$reno && $flag) { print "</td></tr></table><br><br>\n\n"; $flag=1; } if (!$reno) { print "<table class=\"table1\" align=\"center\" cellspacing=0 cellpadding=2>\n<tr><td>"; $flag=1; } if ($reno && $line_color) { print "<hr noshade size=1 width='85%' color=\"$line_color\">\n"; } print "<table width=100% border=0 cellpadding=2 cellspacing=0>\n<tr>"; if ($reno) { print "<td rowspan=2 width=40><br></td>"; } if($line_color){ print"<td>"; } elsif($reno){ print"<td class=\"b2\">"; } else{ print"<td class=\"b1\">"; } if (!$reno) { print "<span class=\"sub\"> <font color=\"$t_color\"><b>$sub </b></font></span>";} else { print "Re:<font color=\"$t_color\"><b>$sub </b></font></span>";} if($search == "yahoo") { print "投稿者:<span class=\"name\">$name</span> yahooで検索";} elsif($search == "google") { print "投稿者:<span class=\"name\">$name</span> Googleで検索";} else { print "投稿者:<span class=\"name\">$name</span> その他で検索";}

    • ベストアンサー
    • Perl
  • 同じようなタグと文字のパターンを簡略化する方法

    <table> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">い</font><font color="red">う</font><font color="green">あ</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> </table> このような感じに同じパターンのHTMLタグと文字の羅列があるのですが、 タグが長くなりすぎて後から調整し直そうとするととても大変です。 <font color="blue">あ</font><font color="red">い</font><font color="green">う</font> 上記の部分を何処か別の場所から呼び出したりして簡略化することは出来ないでしょうか?

  • 2つのタグを合わせたいのですが・・・

    下記のテーブル内にカラーラインを掲載したいのですが、どうやってもできません。いろいろ調べてるんですが、組み合わせたタグが見つからない状態です。 テーブル内にカラーラインを挿入することは不可能なんでしょうか? 皆様、ご多忙と存じますが、教えていただけると幸いです。 稚拙な文章で申し訳ありませんが、宜しくお願いいたします。 ・テーブル <DIV ALIGN="CENTER"><TABLE BORDER="1" BORDERCOLOR="#12DAB5"><TR><TD BGCOLOR="#C0FFC0"> <FONT COLOR="#000000">文字</FONT></TD></TR></TABLE></DIV> ・カラーライン <TABLE WIDTH="100%"><TR><TD BGCOLOR="#7FFFFF"> <DIV ALIGN="CENTER"><FONT COLOR="#000000">文字</FONT></DIV></TD></TR></TABLE>

    • ベストアンサー
    • HTML
  • HTMLで表を横並びにしたくて、下記のような表を作りました。

    HTMLで表を横並びにしたくて、下記のような表を作りました。 この表をもう一つ右隣に作りたいのですが、どうもうまくいきません。 何を付け足せば横に並んでくれるのでしょうか? <table style= width="500" bgcolor="#007500" cellspacing="1" cellpadding="5"> <tr> <td bgcolor="#e5ffe5" width="120"><font color="#000000"><strong><a href="紹介したURL">ああああ</strong></font></td> <td bgcolor="#ffffff"><font color="#000000"><strong>ああ<br></strong></font></td> </tr> <tr> <td bgcolor="#e5ffe5"><font color="#007500"><strong><a href="紹介したいURL">ああああ</a> </strong></font></td> <td bgcolor="#ffffff"><font color="#000000"><strong>ああ<br></strong></font></td> </tr> <tr> <td bgcolor="#e5ffe5"><font color="#000000"><strong><a href="index.html"></strong></font></td> <td bgcolor="#ffffff"><font color="#000000"><strong>あああああ</strong></font></td> </tr> </table><br> </tr>

  • HTMLでテーブルを縦に並べたい!

    基本的な質問でお恥ずかしいのですが、困っています。 テーブルを二つ、縦に並べたいのですが、何故か横に並んでしまいます。 どこが悪いのでしょうか?初心者ですみません…お知恵をお貸しください(T_T)。 <caption><font color="#ff0000">●</font>A <font color="#0000ff">●</font>B</font></caption> <table bgcolor="#80ffff" border="1"cellspacing="0" bordercolor="#0000ff" align="left"> <tr><th width="30"><font size="+5"><font color="#ff0000">●</font></th> <th width="150"> <font size="+4"><strong><big>C</big></strong></font></th> <td><font size="+2">D<br>E</font></td></tr> <tr><td></td><td><div align="center"> <font size="4" color="#8080ff"> 準備中</font></div></td><td></td></tr></table> </p></div> <p></p> <table align="center" bgcolor="#80ffff" height="20" width="250" border="1" cellspacing="2" cellpadding="0"> <tr><td><blink>HOME</blink></td></tr> </table> </body>

    • ベストアンサー
    • HTML