![]() | การเขียน 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>';
|
| แบบฝึกหัด |
|
![]() |
+ ผู้สนับสนุน + รับผู้สนับสนุน |