การเขียนกระดานแสดงความคิดเห็น (Opinion board) | ||
ข้อควรทราบ |
|
การสร้างประเด็นใหม่ใน html |
ให้ใช้ notepad หรือ editor ที่ท่านถนัด พิมพ์โปรแกรมข้างล่างนี้ แล้ว save ในชื่อใดที่ท่านชอบ แต่มีนามสกุลเป็น htm เช่น superman.htm ข้างล่างนี้เป็นตัวอย่าง การเขียนประเด็นเรื่อง superman ถ้านำไปใช้ ก็ให้แก้ไขส่วนต่าง ๆ ที่เกี่ยวกับ superman เท่านั้น จุดสำคัญที่สุดในโปรแกรมนี้ก็คือ บรรทัดรองสุดท้าย ที่กำหนดให้เรียก โปรแกรม perl จากห้อง opinion ก็ต้องถามหละว่า ท่านเก็บ puttext.pl ไว้ที่ไหน แล้วก็แก้จาก opinion เป็นห้องที่ท่านเก็บโปรแกรมนี้ไว้ เป็นอันใช้ได้ เพราะบรรทัดนั้นจะเรียกโปรแกรม perl ให้นำอีก 2 ส่วนมาเพิ่มเข้าไปอัตโนมัติ copy โปรแกรมข้างล่างนี้ไปใส่ใน notepad แล้ว save ในชื่อ superman.htm <HTML><HEAD><TITLE>ชอบ superman ไหม</TITLE></HEAD> <BODY text=#000000 bgcolor=#FFFFFd link=#ff0000 vlink=#ff4444> <font face="microsoft sans serif" size=0> <dd>Superman เมื่อเอ่ยถึงผู้ชายคนนี้ สาว ๆ ต้องบอกว่านี่หละผู้ชายในฝัน หุ่นล่ำ สมชายชาตรี มีอะไรที่พิเศษ น่าหลงไหน เก่งแบบสุดยอด และเป็นมนุษย์ต่างดาว หรือหนุ่ม ๆ ขี้อิจฉา และสาว ๆ ผู้หวั่นไหวคิดอย่างไรกันบ้าง <hr> <!--#exec cgi="/opinion/puttext.pl"--> </body></html> |
การเขียน perl เพิ่ม 2 ส่วนอัตโนมัติ |
โปรแกรมนี้ทำความเข้าใจตามได้ไม่ยาก หรืออาจไม่แก้ไขอะไรก็ได้ จุดที่ท่านต้องแก้ไข ถ้าไม่ได้เก็บโปรแกรม หรือข้อมูลในห้อง opinion คือบรรทัดที่มีคำว่า opinion 2 บรรทัด ให้แก้เป็นชื่อ directory ของท่าน ในกรณีที่ท่านไม่ได้เตรียมห้อง opinion ไว้เก็บข้อมูล txt และโปรแกรม perl หรือ web server บางเครื่องไม่ยอมให้ใช้ cgi นอกห้อง cgi-bin เป็นต้น copy โปรแกรมข้างล่างนี้ไปใส่ใน notepad แล้ว save ในชื่อ puttext.pl #!/usr/local/bin/perl print "Content-type: text/html","\n\n"; print '<center>กดปุ่ม refresh หรือ reload หลังจากเสนอความคิดเห็น</center>'; $dn = $ENV{DOCUMENT_NAME}; $ntxt = substr($dn,0,(length($dn)-4)); $filename = join '',"/data1/hm/thaiall.com","/opinion/",$ntxt,".txt"; $fn = join '',$ntxt,".txt"; open (fn,"$filename"); @gfn = <fn>; close(fn); $cnt = @gfn; @gfn = reverse(@gfn); for $i (0 .. $cnt-1) { @rec = split /<br>/,$gfn[$i]; print "<font color=#ff0000>",$rec[0],"</font><br> - ",$rec[1],"<br>"; } print "<hr><form method=post action=/opinion/puttextn.pl>"; print "<input type=hidden name=filen value='"; print $fn; print "'>ชื่อ หรือ E-Mail <input type=text name=nm size=40><br>"; print "<textarea name=opinion rows=5 cols=60>"; print "แสดงความเห็นของท่านที่นี่</textarea><br>"; print '<input type=submit name=submit value=ส่งความเห็น(Send_Opinion)>'; print '<input type=reset name=reset value=ล้างความเดิม(Clear)>'; print '</form>'; print '<hr></body></html>'; |
การเขียน perl ที่ถูกสั่งจาก form |
ถ้าท่านไม่ได้แก้โปรแกรม puttext.pl และยังเก็บข้อมูลในห้อง opinion สำหรับโปรแกรมนี้ก็ไม่ต้องแก้อะไรเช่นกัน แต่ถ้าท่านย้ายห้องจาก opinion จะมีจุดที่ต้องแก้คือบรรทัดที่ 2 ที่มีคำว่า opinion เท่านั้น ซึ่งเป็นจุดอ้างถึงแฟ้ม txt เพื่อจะเพิ่มความคิดเห็นใหม่เข้าไป copy โปรแกรมข้างล่างนี้ไปใส่ใน notepad แล้ว save ในชื่อ puttextn.pl #!/usr/local/bin/perl $b = "/data1/hm/thaiall.com"; $basedir = join '',$b,"/opinion/"; print"Content-type:text/html\n\n"; print'<HTML><HEAD><TITLE>ร่วมแสดงความคิดเห็น</TITLE></HEAD>'; print'<font face="microsoft sans serif" size=0><center>'; $gsys = <STDIN>; $gsys =~ tr/+/ /; $gsys =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $gsys =~ s/~!/~!/g; $_ = $gsys; $x = tr/~-~#-@A-Za-zก-ฮฯ-๙/ /cs; $gsys = $_; @pairs = split(/&/, $gsys); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $FORM{$name} = $value; } #=============================== if (length($FORM{'nm'}) > 0 and length($FORM{'opinion'}) > 0) { $filename = join '',$basedir,$FORM{'filen'}; open(talk,"$filename"); @keeptalk = <talk>; close(talk); unlink($filename); open(talk,">$filename"); foreach $keeprec (@keeptalk) { print talk $keeprec; } print talk $FORM{'nm'},"<br>",$FORM{'opinion'},"\n"; close(talk); print '<hr><a href=',$ENV{HTTP_REFERER},'>เรียบร้อย.</a><hr>'; } else { print '<hr><a href=',$ENV{HTTP_REFERER},'>กรอกข้อมูลไม่ครบ</a><hr>'; } print'</body></html>'; |
แบบฝึกหัด |
|
+ ผู้สนับสนุน + รับผู้สนับสนุน |