การเขียน chat board อย่างง่าย | ||
ข้อควรทราบ |
|
บอร์ดสำหรับรับ และส่งข้อความ |
ตัวอย่าง html นี้ผมใช้ชื่อ plchat1.htm เก็บในห้อง /perl ถ้านำไปทดสอบจะใช้ชื่ออะไรก็ได้นะครับ copy โปรแกรมข้างล่างนี้ไปใส่ใน notepad แล้ว save ในชื่อ plchat1.htm <html><body><a name=top></a><font face="microsoft sans serif" size=0> <form method=post action=/perl/plchat1.pl> <input type=text name=txt size=40><br> <input type=submit value=send> <input type=reset value=clear> </form><hr> |
ส่วนสั่งเพิ่มข้อมูลในบอร์ด |
ตัวอย่าง perl นี้ผมใช้ชื่อ plchat1.pl เก็บในห้อง /perl ถ้านำไปทดสอบจะใช้ชื่ออะไรก็ได้นะครับ แต่ต้องสัมพันธ์กับ plchat1.htm หลักการของโปรแกรม คือ - การนำชุดตัวอักษรที่ได้มาแปลงให้เป็นภาษาไทยได้ก่อน - เปิด /perl/plchat1.htm แล้วอ่านมาทุกบรรทัด เก็บไว้ใน @gfn - กำหนดค่าต่าง ๆ ที่จะนำไปใช้ใน loop สำคัญ - ใน loop ถ้าเจอ /form แสดงว่าหมดส่วน heading ให้พิมพ์ให้พิมพ์ข้อความที่รับเข้ามา คือ $txt ลงไป - จากนั้นให้นำทั้งหมดที่อ่านจากแฟ้มเขียนลงไป แต่ต้องไม่เกิน $limitline ซึ่งเป็นจำนวนบรรทัดสูงสุดที่อนุญาติ - เมื่อหมดข้อความแล้วให้นำบรรทัดสุดท้ายพิมพ์ลงไป copy โปรแกรมข้างล่างนี้ไปใส่ใน notepad แล้ว save ในชื่อ plchat1.pl #!/usr/local/bin/perl $gsys = <STDIN>; $gsys =~ tr/+/ /; $gsys =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $gsys =~ s/~!/~!/g; @gs = split /=/, $gsys; $txt = $gs[1]; $filename = join '',"/data1/hm/thaiall.com","/perl/plchat1.htm"; open (fn,"$filename"); @gfn = <fn>; close(fn); $cnt = @gfn; ($sec,$min,$hr,$day,$month,$year) = localtime(time); $limitline = 30; #จำกัดการเก็บข้อมูลเพียง 30 บรรทัด unlink("$filename"); open (fn,">$filename"); $c=0; for $i (0 .. $cnt-2) { if ($c < $limitline) {print fn $gfn[$i];} if ($c > 0) { $c++; } if (substr($gfn[$i],0,7) eq "</form>") { $c = 1; print fn "<font size=2>",$txt,"</font> _ _ _"; print fn " [<a href=#top>",$ENV{REMOTE_ADDR},"</a> - "; print fn "<a href=#bottom>",$hr,":",$min,":",$sec,"</a>]<br>\n"; } #if } #for print fn "<hr><a name=bottom></a><a href=/perl/plchat.htm>วิธีเขียน Chat board แบบนี้</a>"; print fn "</body></html>"; close(fn); print "Content-type: text/html","\n\n"; print "<meta http-equiv='Refresh' content='0; URL=/perl/plchat1.htm'>"; print'<body><font face="microsoft sans serif" color=#0000ff>'; print'<a href=/perl/plchat1.htm>คุยกัน .. มาคุยกัน</a></body></html>'; |
แบบฝึกหัด |
|
+ ผู้สนับสนุน + รับผู้สนับสนุน |