200X/00/05 ちょこっとperlが解ってきたので?? 基本的には、HTMLからPOSTでCGIに送り、そのHTMLを書き直してからまた表示を させる方法なのですが・・・書き込みデータをどうやって処理するかが面白いところで(*^^*ゞ open命令だけで掲示板を作ってみよう・・・(^。^/)ウフッ これが書きこみを次々と、下に表示してしまう凄い掲示板になってしまった(*^^*ゞ 明日は、ちゃんと新しいカキコが上に表示されるようにしよう・・・。 まず送るがわのフォームHTMLの作成、これはHTMLが書ける人なら誰でも書ける? このような感じのhtmlファイルを書く。 <HTML> <HEAD><TITLE>TESTBBS</TITLE></HEAD> <BODY> <FORM METHOD="POST" ACTION="cgi-bin/****.cgi"> KAKIKO<TEXTAREA NAME="memo" ROWS="4" COLS="60"> </TEXTAREA><P> <INPUT TYPE="submit" VALUE="submit"> <INPUT TYPE="reset" VALUE="reset"> <HR> </FORM></HTML> 《これを表示させるとこんな感じ→ 「dbbbs1.html」》 続いてCGIのファイルなのですが・・・ #!/usr/local/bin/perl print "Content-type: text/html\n\n"; read(STDIN, $naka, $ENV{"CONTENT_LENGTH"}); @nakami = split('&', $naka); foreach(@nakami) { ($hidari, $migi) = split("="); $migi =~ tr/+/ /; $migi =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; $kaku{$hidari} = $migi; } $memo = $kaku{'memo'}; $dasufile="../****.html"; $nakamifile = "../****.txt"; print <<MAMA; <META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://127.0.0.1/~*****/****.html"> <BODY> matenne<p> MAMA open(FILE, ">>$nakamifile"); select FILE; print <<MAMA; $memo<hr> MAMA close(FILE); open(DASU, ">$dasufile"); select DASU; print<<MAMA; <HTML> <HEAD><TITLE>TESTBBS</TITLE></HEAD> <BODY> <FORM METHOD="POST" ACTION="cgi-bin/****.cgi"> message:<TEXTAREA NAME="memo" ROWS="4"COLS="60"> </TEXTAREA><P> <INPUT TYPE="submit" VALUE="submit"> <INPUT TYPE="reset" VALUE="reset"> <HR> MAMA open(KAKI, "$nakamifile"); @kaki = <KAKI>; print @kaki; print "</form>"; print "</html>"; close(DASU); exit; しかし??これはログを次々と書き込みを追加してしまうんです(*^^*ゞ 《この掲示板に書き込みするとこんな感じ→ 「dbbbs2.html」》 |