การนำค่าจาก form เก็บลงแฟ้ม | ||
ข้อควรทราบ |
|
เพิ่มระเบียน ในแฟ้มใหม่ |
Click here for open this form sample |
<form method=post action=/perl/plsave1.pl> <input type=text name=getvar> <input type=submit value=submit> <input type=reset value="clear it"> </form> |
โปรแกรม perl นี้จะลบแฟ้ม plsave.txt ทันที แล้วจึงส่งข้อมูลที่รับเข้ามา เข้าไปเก็บในแฟ้ม #!/usr/local/bin/perl print"Content-type:text/html\n\n"; $dat = <STDIN>; $filename = join '',"/data1/hm/thaiall.com","/perl/plsave.txt"; unlink("$filename"); open(myfile,">$filename"); print myfile $dat; close(myfile); print $dat," : finish" |
ผลที่ได้จากการกดปุ่ม submit ข้างบนนี้ มีเพียง 1 บรรทัด คือ getvar=This+is+test : finish ถ้าท่านพิมพ์คำว่า This is test ในช่องว่าง สำหรับผลการทำงานที่มองไม่เห็นก็คือ ได้มีการลบแฟ้ม plsave.txt ถ้าเคยมีอยู่ แต่ถ้าไม่มีก็ไม่เกิดปัญหาอะไร จากนั้นจะถูกสร้างใหม่ พร้อมการเพิ่มข้อมูลเข้าไป |
เรียกข้อมูลมาแสดง เพื่อจะได้ดูผลการเพิ่มข้อมูล |
เรียกโปรแกรม perl ให้ไปอ่านแฟ้มมาแสดง ถ้าไม่ส่งค่าให้ ก็เรียกตรง ๆ ผ่าน url ได้เลย เช่น Click here to read file |
#!/usr/local/bin/perl print"Content-type:text/html\n\n"; $filename = join '',"/data1/hm/thaiall.com","/perl/plsave.txt"; print "<pre>"; open(myfile,"$filename"); @getrec = <myfile>; close(myfile); print @getrec;ผลของโปรแกรมนี้จะนำข้อมูลที่อยู่ใน plsave.txt มาพิมพ์ทั้งหมด โดยไม่จัดรูปแบบ หรือแยกบรรทัด |
เพิ่มระเบียนต่อท้ายแฟ้มเดิม ตัวอย่างนี้เป็นตัวอย่างที่ไม่ดีนัก เพราะไม่สามารถแยกข้อมูลแต่ละครั้งที่ส่งเข้าไปได้ง่าย หากจะให้แยกได้ง่าย ต้องให้ข้อมูลแต่ละครั้งที่ส่งเข้าไปอยู่ต่างบรรทัดกัน |
Click here for open this form sample |
<form method=post action=/perl/plsave3.pl> <input type=text name=getvar> <input type=submit value=submit> <input type=reset value="clear it"> </form> |
โปรแกรม perl นี้จะเพิ่มข้อมูลต่อท้ายแฟ้ม plsave.txt แต่ข้อมูลที่ถูกส่งเข้าไปจะอยู่บรรทัดเดียวกันหมด ไม่มีการแยกบรรทัดของข้อมูล #!/usr/local/bin/perl print"Content-type:text/html\n\n"; $dat = <STDIN>; $filename = join '',"/data1/hm/thaiall.com","/perl/plsave.txt"; open(myfile,">>$filename"); print myfile $dat; close(myfile); print $dat," : finish" |
ผลที่ได้จากการกดปุ่ม submit ข้างบนนี้ มีเพียง 1 บรรทัด คือ getvar=This+is+test : finish ถ้าท่านพิมพ์คำว่า This is test ในช่องว่าง สำหรับผลการทำงานที่มองไม่เห็นก็คือ ถ้าเดิมข้อมูลเท่าใด ก็จะเพิ่มข้อมูลใหม่ ต่อท้ายข้อมูลเดิม ทันที |
เพิ่มระเบียน ซึ่งแสดงการแยกและรวมเขตข้อมูล |
Click here for open this form sample |
<form method=post action=/perl/plsave4.pl> <input type=text name=getvar1><br> <input type=text name=getvar2><br> <input type=submit value=submit> <input type=reset value="clear it"> </form> |
โปรแกรม perl นี้จะนำเฉพาะข้อมูลไปเพิ่มใน plsave.txt และแบ่งแต่ละครั้งที่เพิ่มไว้คนละบรรทัด และแบ่งแต่ละเขตข้อมูลไว้ด้วยเครื่องหมาย : #!/usr/local/bin/perl print"Content-type:text/html\n\n"; $dat = <STDIN>; $dat =~ tr/+/ /; $dat =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $dat =~ s/~!/~!/g; $_ = $dat; $dat = tr/~-~#-@A-Za-zก-ฮฯ-๙/ /cs; $dat = $_; $filename = join '',"/data1/hm/thaiall.com","/perl/plsave.txt"; @dd = split '&',$dat; $v1 = split '=',$dd[0]; $v2 = split '=',$dd[1]; open(myfile,">>$filename"); print myfile $v1,":",$v2,"\n"; close(myfile); print $dat," : finish" |
ผลที่ได้จากการกดปุ่ม submit ข้างบนนี้ มีเพียง 1 บรรทัด คือ getvar1=one&getvar2=second : finish ถ้าท่านพิมพ์คำว่า one และ second ในช่องว่าง การแสดงผล ถ้ามีการเคาะช่องไฟในแต่ละเขตข้อมูล จะไม่มีเครื่องหมาย + เข้าไปเก็บในข้อมูลอีก และตัวอย่างนี้ยังใช้ภาษาไทยได้ เพราะได้แปลงข้อมูลแล้ว |
แบบฝึกหัด |
|
+ ผู้สนับสนุน + รับผู้สนับสนุน |