ตัวอย่างโค้ดด้วยภาษาเพิร์ล
ตัวอย่างโค้ดด้วยภาษาเพิร์ล
HOME | TEAM
รายชื่อบท ตามหนังสือ
    ตอนที่ 1 PERL programming
    บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับ PERL
    Perl คือภาษาคอมพิวเตอร์ภาษาหนึ่ง ซึ่งย่อมาจาก Practical Extraction and Report Language ถูกพัฒนาขึ้นโดย Mr.Larry Wall ตั้งแต่ปี 1986 โดยมีรูปแบบที่คล้ายภาษา C ถูกนำมาใช้พัฒนา Website ให้เป็น Dynamic web page ซึ่งสามารถโต้ตอบกับผู้ใช้ และติดต่อกับฐานข้อมูลใน Server
    Perl คือภาษา Script ที่ทำงานบนหลักการของ CGI ที่เป็น Script language และจะต้องทำงานที่ตัว Server จึงถูกเรียกว่า Server Side Script เป็นภาษาที่ไม่ต้อง compile ให้เป็น object เช่นเดียวกับ PHP หรือ ASP ที่เป็นภาษา Script ซึ่งได้รับความนิยมอย่างมากในขณะนี้ สำหรับ CGI ย่อมาจาก Common Gateway Interface เป็นวิธีการติดต่อระหว่าง Client และ Server
    ภาษาใดก็เป็น CGI ได้ ถ้ามีส่วนของภาษาที่ให้บริการ การติดต่อระหว่าง Client และ Server เช่นเครื่อง PC ที่บ้าน(Client) เปิด Web โดยพิมพ์ URL ที่ต้องการลงไปในช่อง Address ของ Browser เช่น Netscape, IE, Opera หรือ Neoplanet เป็นต้น จากนั้น Browser จะร้องขอไปยังเครื่องบริการ(Server) เมื่อได้รับข้อมูลที่ส่งจาก Browser จะประมวลผล ตามภาษา Script หลังจากประมวลผลเสร็จ
    จะส่งผลกลับไปที่เครื่อง Client และ Browser จะแสดงผลตามที่รับมา

    ต.ย. 1.1 if.pl (โปรแกรมเลือกตามเงื่อนไข)
    ต.ย. 1.2 loop.pl (โปรแกรมทำซ้ำ)
    ต.ย. 1.3 sub.pl (โปรแกรมย่อย)

    บทที่ 2 การสั่งให้ shell ทำงาน
    ในระบบปฏิบัติการ UNIX มี Shell command อยู่มากมาย และมีการพัมนา shell เพิ่มขึ้น เมื่อออกระบบปฏิบัติการ Version ใหม่เสมอ ซึ่ง shell เหล่านี้อาจช่วยให้การพัฒนาโปรแกรมด้วย Perl สะดวกขึ้น สำหรับการเรียกใช้ Shell มีหลายวิธีเช่นการใช้ use Shell หรือการสั่งประมวลผลภายใต้เครื่องหมาย ` หรือ รหัส ASCII - 96
    การใช้ Shell command ทำให้ผู้ใช้สามารถควบคุมระบบผ่าน Browser หรือประยุกต์โปรแกรม ให้สามารถควบคุม และดูแลระบบด้วยการสั่งประมวลผล Shell โดยไม่จำเป็นต้องเข้าไปในระบบ ด้วยโปรแกรม Telnet หรือ Putty ซึ่งโปรแกรมที่ถูกเรียก จะใช้นามของ nobody หรือตามที่ผู้บริหารระบบกำหนด ไปเรียกโปรแกรมเหล่านั้น บางทีหากเพิ่มระดับสิทธิให้กับ nobody อาจทำอะไรได้อีกมากมาย เช่นการใช้คำสั่ง useradd ซึ่งเดิมมีเพียง root เท่านั้นที่ใช้ได้ (แต่ถ้าคิดจะทำก็อย่าให้ใครทราบ เพราะจะเป็นการสร้างจุดอ่อนให้กับระบบ)
    นอกจากการใช้ Shell command ภาษา perl ยังมีคำสั่งให้เรียกใช้ได้อีกมาก เช่น การตรวจ IP หรือ Domain name หรือการอ่านค่าที่ระบบเก็บไว้เป็นต้น ซึ่งจะทำให้ผู้ใช้สามารถ นำไปประยุกต์ใช้อย่างเหมาะสม กับงานที่สร้างขึ้นมาต่อไป

    ต.ย. 2.1 useshell.pl (การใช้ Shell command)
    ต.ย. 2.2 whereis.pl (การใช้ Whereis)
    ต.ย. 2.3 finger.pl (การใช้ Finger)
    ต.ย. 2.4 gethost.htm (ฟอร์มส่ง IP กับ Domain name ไปตรวจสอบ)
    ต.ย. 2.5 gethostbyaddr.pl (โปรแกรมตรวจ Domain name ของ IP)
    ต.ย. 2.6 gethostbyname.pl (โปรแกรมตรวจ IP ของ Domain name)
    ต.ย. 2.7 listfilein.pl (โปรแกรมแสดงข้อมูลในทุกแฟ้มแบบ text)
    ต.ย. 2.8 english.pl (โปรแกรมแสดงค่าจากตัวแปรระบบ)
    ต.ย. 2.9 showenv.pl (โปรแกรมแสดงค่าจาก ENV)

    บทที่ 3 การปรับปรุงแฟ้มข้อมูลอย่างง่าย
    เพื่อให้ผู้ศึกษาเข้าใจพื้นฐานการประมวลผลแฟ้มแบบ text โดยในบทนี้จะใช้เลขที่ของบรรทัด ในการอ้างอิง ไม่ใช้ keyword ตามที่ควรจะเป็น เพราะต้องการสื่อให้เข้าใจได้ง่าย ว่าการเพิ่ม ลบ แก้ไข แสดงข้อมูล สร้าง หรือลบแฟ้มนั้นทำได้อย่างไร
    เลขบรรทัด หรือเลขระเบียน ในที่นี้ก็คือเลขที่ของบรรทัด เช่นข้อมูลมี 10 บรรทัด เมื่อลบบรรทัดที่ 7 บรรทัดนั้นจะหายไป บรรทัดที่ 8 จะเลื่อนมาเป็นบรรทัดที่ 7 แทน ต่างกับการใช้ keyword เช่นรหัสนักศึกษา เมื่อลบข้อมูลตามรหัสนักศึกษา คนหนึ่งไป
    จะไม่สามารถลบข้อมูลของนักศึกษาคนนั้นได้อีก เนื่องจากข้อมูลได้หายไปแล้ว แต่การลบตามเลขบรรทัด ถ้าลบบรรทัดที่ 1 ไป บรรทัดที่สองก็จะเลื่อนขึ้นมาเป็นบรรทัดที่ 1 ทำให้การลบบรรทัดที่ 1 อีกครั้ง สามารถทำได้ จนกว่าจะไม่มีข้อมูลในบรรทัดที่กำหนดเหลืออีก
    สำหรับการแบ่งเขตข้อมูล ในกรณีนี้จะใช้เครื่องหมาย , ซึ่งทำให้ผู้ใช้สามารถประยุกต์ด้วยการ นำข้อมูลที่พิมพ์ด้วย Microsoft Excel แล้ว Save as เป็น Text แบบ CSVDelimited (Comma Separated Value) ซึ่งเป็น Text file ที่มีเครื่องหมาย , กั้นในแต่ละเขตข้อมูล และจำนวนบรรทัดก็คือจำนวนระเบียนซึ่งถูกแบ่งด้วย Chr(13) + Chr(10) ซึ่งเป็น 2 ตัวอักษรสุดท้ายของทุกบรรทัด (ที่มักสังเกตุไม่เห็น)
    ตามมาตรฐานของ Text file บน DOS(Disk Operating System) รหัสตัดบรรทัดทุกท้ายบรรทัดประกอบด้วย 2 Byte หรือ 2 Character คือ Carriage return(ASCII 13 ฐาน 10 หรือ 0D ฐาน 16) และ Line feed(ASCII 10 ฐาน 10 หรือ 0A ฐาน 16)

    ต.ย. 3.1 data.txt (แฟ้มเก็บข้อมูล)
    ต.ย. 3.2 index.html (ฟอร์มควบคุมการปรับปรุงข้อมูล)
    ต.ย. 3.3 recfirst.pl (สร้างแฟ้มที่ไม่มีข้อมูล)
    ต.ย. 3.4 recadd.pl (เพิ่มระเบียนใหม่)
    ต.ย. 3.5 reclst.pl (นำข้อมูลในแฟ้มมาแสดง)
    ต.ย. 3.6 recdel.pl (ลบระเบียนตามเลขลำดับ)
    ต.ย. 3.7 recchange.pl (เปลี่ยนรหัสผ่านตามเลขลำดับ)
    ต.ย. 3.8 filedel.pl (ลบแฟ้ม data.txt)

    บทที่ 4 การปรับปรุงแฟ้มข้อมูลตามรหัสผู้ใช้
    บทนี้จะเป็นการเสริมพื้นฐาน การจัดการกับแฟ้มแบบ text จากบทก่อน ที่ใช้เลขบรรทัดในการเลือกปรับปรุงระเบียนข้อมูล โครงสร้างแฟ้มข้อมูลในบทนี้จะใกล้เคียงกับการปรับปรุงแฟ้มข้อมูลอย่างง่าย ซึ่งมีเพียง 2 เขตข้อมูลคือ รหัสของผู้ใช้ และรหัสผ่าน
    หน้าที่ของบทนี้คือ เปรียบเทียบโปรแกรม 2 ชุดที่มีหน้าที่ใกล้เคียงกันระหว่างบทเรียนนี้ กับบทเรียนก่อนหน้านี้ ซึ่งสิ่งที่เพิ่มขึ้นคือ การตรวจความผิดพลาดก่อนประมวลผล การสร้างระเบียนอัตโนมัติ เพื่อใช้เป็นข้อมูลทดสอบ การจัดเรียงข้อมูลอย่างง่าย และการใช้ Keyword หรือรหัสของผู้ใช้ แทนเลขบรรทัด
    สำหรับโครงสร้างข้อมูลยังคงใช้เครื่องหมาย , แบ่งเขตข้อมูลซึ่งสามารถ Export ข้อมูลมาจาก Microsoft Access เป็น Text แบบ CSVDelimited (Comma Separated Value) ซึ่งทำให้จัดการข้อมูลให้เรียบร้อยอย่างมีประสิทธิภาพ หรืออาจนำข้อมูลที่ใช้งานในระบบ Microsoft Access อยู่เดิม มาใช้ในระบบใหม่ได้

    ต.ย. 4.1 data.txt (แฟ้มเก็บข้อมูล)
    ต.ย. 4.2 index.html (ฟอร์มควบคุมการปรับปรุงข้อมูล)
    ต.ย. 4.3 recfirst.pl (โปรแกรมสร้างข้อมูล 3 ระเบียนแรก)
    ต.ย. 4.4 recadd.pl (โปรแกรมเพิ่มระเบียนใหม่)
    ต.ย. 4.5 reclst.pl (โปรแกรมนำข้อมูลในแฟ้มมาแสดง)
    ต.ย. 4.6 recdel.pl (โปรแกรมลบระเบียนตามรหัส)
    ต.ย. 4.7 recchange.pl (โปรแกรมเปลี่ยนรหัสผ่านตามรหัสผู้ใช้)
    ต.ย. 4.8 recsort.pl (โปรแกรมจัดเรียงข้อมูล)

    บทที่ 5 ข้อสอบ Online
    ข้อสอบ online มีหลายแบบ ตามแต่ผู้พัฒนาจะออกแบบ ซึ่งหลักการของข้อสอบ Online ที่เหมือนกัน คือ เมื่อทำแล้ว ควรรู้ผลทันที หรือเกือบทันที แต่ถ้าทำแล้วส่งผลไปให้ครู และรอให้ครูว่างเข้าไปตรวจ อย่างนี้ผู้เขียนขอเรียกว่า Offline เพราะไม่ต่างอะไรกับการทำบนกระดาษ แล้วนำไปส่งที่โต๊ะ เมื่อครูมีเวลา จึงจะเริ่มตรวจ หลังจากตรวจแล้ว จึงกลับมาแจ้งผลคะแนน ส่วนใหญ่ครูจะไม่นำข้อสอบเดิม มาให้นักเรียนดู เพื่ออธิบายแต่ละข้อว่าถูก หรือผิดอย่างไร เพราะไม่มีเวลาพอที่จะทำอย่างนั้น
    ดังนั้นข้อสอบ Online ในบทนี้จึงเป็นข้อสอบเพื่อการฝึกฝน จะแจ้งผลทันที เพื่อให้นักเรียนจดจำว่า ที่ทำนั้นถูก หรือผิดอย่างไร ซึ่งหลักการนี้ยังเขียนได้หลายแบบในด้านการนำเสนอ ในบทเรียนนี้เสนอโปรแกรม 2 แบบคือ แบบตรวจทันทีเมื่อเลือกคำตอบ และแบบตรวจเมื่อทำเสร็จทุกข้อ โดยเฉลยทุกข้อ พร้อมกันหลังส่งคำตอบ และหากต้องการดูตัวอย่างที่ใช้งานจริงในแบบอื่น สามารถดูได้จาก http://www.thaiall.com/quiz
    โปรแกรมนี้เหมาะกับครูที่ต้องการรวบรวมข้อสอบให้นักเรียนได้ฝึกฝนในวิชาของตน หรือนักเรียน ที่ต้องการ ทบทวนความรู้ของตน โดยเก็บรวบรวมความรู้ในวิชาที่ตนสนใจทั้งหมด จัดทำเป็นข้อสอบให้เพื่อน ได้เข้าไปฝึกฝน ซึ่งสามารถประยุกต์โปรแกรมไปได้หลายรูปแบบ โดยใช้ฐานข้อมูลเดียวกัน เช่นสร้างข้อมูลเพียงแฟ้มเดียว แต่เขียนโปรแกรมได้หลายแบบ ให้เรียกใช้แฟ้มข้อมูลร่วมกันได้ เช่น ข้อสอบแบบสุ่ม เกมเศรษฐี เป็นต้น

    ต.ย. 5.1 quizjava.txt (แฟ้มเก็บข้อสอบ)
    ต.ย. 5.2 quizjava.pl (ข้อสอบสุ่มแบบตรวจทันที)
    ต.ย. 5.3 quizauto.pl (ข้อสอบสุ่มแบบตรวจเมื่อเสร็จ)
    ต.ย. 5.4 parse.pl (รับค่าจากภายนอกเช่น post หรือ get)

    บทที่ 6 ห้องสะสมภาพ
    ถ้าเว็บของท่านเก็บสะสมภาพไว้มาก แต่ไม่ทราบว่าจะนำเสนอภาพเหล่านั้นอย่างไร เพื่อให้ง่าย ต่อการบำรุงรักษา และนำเสนอ หากใช้วิธีเดิม เช่น มี 200 ภาพ และแบ่งแฟ้ม html เป็น 10 แฟ้ม หน้าละ 20 ภาพ ในกรณีที่ต้องการแก้ไข จะต้องเข้าไปแก้ไขทั้ง 10 แฟ้ม แต่ถ้าใช้ภาษา Perl ควบคุม การนำเสนอ จะทำให้แก้ไขหน้าเว็บมีความยืดหยุ่น และมีตัวเลือกมากได้เท่าที่ต้องการ เช่นกำหนดสีพื้นกำหนดจำนวนภาพต่อหน้า เลือกภาพ หรือขนาดของภาพที่ต้องการแสดง หรือแม้แต่การเลือกป้าย Banner มาแสดงในหน้าที่ต้องการ เป็นต้น
    สำหรับการเปิดภาพขยาย(Enlarge) อาจเขียนโปรแกรมเสริมขึ้นมา เพื่อทำให้การเปิดภาพ สามารถเลือก Banner จากผู้สนับสนุนหลายราย มาแสดงพร้อมภาพ หรือ Logo ของบริษัทมาแสดงได้ตามต้องการ แทนที่จะเปิดภาพโดยตรงอย่างเดียว ซึ่งโปรแกรมที่เขียนอาจเขียนเพียง 1 โปรแกรม แต่เปิดภาพได้ทั้งหมด ในบทนี้จึงนำเสนอโปรแกรมไว้ 3 โปรแกรม เพื่อนำเสนอห้องภาพให้เกิดความยืดหยุ่น และสามารถนำไปประยุกต์ ให้มีประสิทธิภาพต่อไป

    ต.ย. 6.1 gallery.pl (ห้องสะสมภาพแบบอัตโนมัติ)
    ต.ย. 6.2 pic.htm (ห้องสะสมภาพแบบ Link ธรรมดา)
    ต.ย. 6.3 pic.pl (เปิดภาพพร้อมรายละเอียด)

    บทที่ 7 ระบบประเมินผล และลงทะเบียน
    เนื่องจากผู้เขียนทำงานในสำนักทะเบียนของสถานศึกษา จึงรู้ว่ามีโปรแกรมมากมายในระบบ และเป็นงานที่ยืดหยุ่นไปตามนโยบายของผู้บริหาร(แก้บ่อย) สำหรับโปรแกรมที่เลือกมาเป็นตัวอย่างนี้ มี 3 เรื่อง คือการประเมินการสอนของอาจารย์ แสดงผลการเรียน และโปรแกรมลงทะเบียน แต่จะนำมาเฉพาะส่วนงานหลักบางส่วน หากจะนำไปใช้จริงจะต้องผ่านด่าน ความต้องการของผู้ใช้หลายชั้นและผู้เขียนเองก็เชื่อว่า ถึงแม้จะเขียนแบบใช้งานได้ในหน่วยงานหนึ่ง หากจะนำไปใช้ในอีกหน่วยงานหนึ่ง อาจต้องเขียนใหม่ทั้งระบบ เพราะแทบไม่มีระบบใด ที่มีรายละเอียดของระบบเหมือนกันทุกประการ แม้ระบบที่ทำอยู่ ถึงแม้จะใช้งานมาหลายปี ก็ยังต้องปรับปรุงแก้ไขเสมอ และโปรแกรมเมอร์ส่วนใหญ่จะนิยมการเขียนโปรแกรมใหม่ แทนการนำโปรแกรมเก่าที่ตนไม่ได้เขียนมาแก้ไข เนื่องจากการนำโปรแกรมเก่ามาแก้ไข จะต้องเข้าไปอ่านโปรแกรม ให้เข้าใจทั้งหมด แล้วจึงจะแก้ไขให้เป็นไปตามความต้องการ ซึ่งเป็นการทำงาน 2 ครั้ง แต่ถ้าเขียนโปรแกรมใหม่ จะเป็นการทำงานเพียงครั้งเดียว
    หลายท่านที่ทำงานในสถาบันการศึกษา อาจมีประสบการณ์เหมือนผู้เขียน ที่ต้องปรับปรุงระบบเป็นประจำ เช่น รหัสนักเรียนเปลี่ยนไปตามหลักสูตร หรือเปิดหลักสูตรใหม่ หน้าตารายงานที่เคยพอดีได้เปลี่ยนไป หรือทุกปีขอรายงานไม่เคยซ้ำกัน เพราะผู้บริหารเปลี่ยนไป หรืออาจจำไม่ได้ว่าปีที่แล้วขอรายงานแบบใด เงื่อนไขการชำระเงิน แต่ละหลักสูตรไม่เหมือนกัน หลักสูตรเดียวกันลงเรียนจำนวนวิชาต่างกัน อาจคิดค่าหน่วยกิตไม่เท่ากัน ลงทะเบียนแล้วไม่ต้องชำระเงินได้ หรือผ่อนชำระได้ พร้อมมีระบบหักทุนอัตโนมัติ มีการเก็บเงินค่าหนังสือเรียน พร้อมค่าลงทะเบียนเรียน หรือขอไม่ชำระค่าหนังสือ หรือการลงทะเบียนในบางกลุ่มวิชาซ้ำกัน จะเสียค่าลงทะเบียนครึ่งหนึ่ง
    ในการตรวจสอบรายวิชาที่ลงทะเบียนในสถาบันใหญ่ มักจะเป็นภาระของนักเรียน เช่นลงทะเบียนไม่ผ่านวิชาบังคับ ลงข้ามชั้นปี ลงผิดคณะ ล้วนเป็นภาระที่นักเรียนต้องรับผิดชอบ แต่ในสถาบันบางแห่งเป็นภาระของสำนักทะเบียน ที่จะตรวจสอบ พร้อมให้คำปรึกษาในทันที ไม่ยอมให้ เกิดข้อผิดพลาด หรือถ้าผิดพลาดก็พร้อมช่วยเหลือเสมอ .. เหล่านี้ล้วนเป็นงานของผู้พัฒนาโปรแกรมที่ต้องปฎิบัติตามความต้องการของผู้ใช้ และมองไปถึงความต้องการในอนาคต เพื่อจะได้ไม่เหนื่อยในภายหลัง

    ต.ย. 7.1 evaldata.txt (ข้อมูลวิชาของนักเรียนในภาคปัจจุบัน)
    ต.ย. 7.2 evalresult.txt (เก็บผลการประเมิน)
    ต.ย. 7.3 grd441.txt (ข้อมูลของนักเรียนที่รหัสขึ้นต้นด้วย 441)
    ต.ย. 7.4 regist.txt (ข้อมูลวิชาของนักเรียนทั้งหมด)
    ต.ย. 7.5 index.html (ฟอร์มประเมินการสอน)
    ต.ย. 7.6 evalsubj.pl (แสดงรายวิชาที่ลงทะเบียน)
    ต.ย. 7.7 evalopt.pl (แสดงตัวเลือกให้ประเมิน)
    ต.ย. 7.8 evalsave.pl (จัดเก็บผลประเมิน)
    ต.ย. 7.9 grade.pl (แสดงผลการเรียน)
    ต.ย. 7.10 listunlink.pl (แสดงข้อมูลหรือลบแฟ้ม)
    ต.ย. 7.11 registnew.htm (ฟอร์มลงทะเบียนเรียน)
    ต.ย. 7.12 registnew.pl (จัดเก็บข้อมูลลงทะเบียน)
    ต.ย. 7.13 parse.pl (รับค่าจากภายนอก เช่น Post หรือ Get)

    บทที่ 8 ระบบกระดานแสดงความคิดเห็น
    การเขียนเว็บที่ประมวลผลได้(Dynamic web) มักเริ่มต้นด้วยการทำ Webboard หรือกระดานข่าว แม้แต่ตัวผู้เขียนเองก็เริ่มต้นด้วยกระดานข่าว เพราะมีการจัดระบบโปรแกรมที่สมบูรณ์ ต้องวางแผนโครงสร้างข้อมูล และใช้คำสั่งที่หลากหลาย จึงจะได้กระดานข่าวที่สมบูรณ์
    สำหรับบทนี้จะเป็นตัวอย่างกระดานข่าวอีกลักษณะหนึ่ง ซึ่งอาจไม่เหมือนใคร เพราะมีข้อบกพร่องหลายจุด ที่ต้องได้รับการปรับปรุง เช่นหน้าตา หรือหลักการเรื่องโครงสร้างข้อมูล หรือแม้แต่การจัดหมวดหมู่ ที่ยังไม่มีในกระดานข่าวชุดนี้ แต่ถ้าจะจัดหมวดหมู่แบบแยกอิสระ ก็เพียงแต่สร้าง directory ใหม่ สำหรับเก็บโปรแกรมทั้งชุด ก็จะได้หน้าเว็บใหม่สำหรับหมวดหมู่ที่สร้างขึ้นทันที ข้อเสียของการแยกหมวดหมู่แบบนี้ คือ โปรแกรมสืบค้นที่มีอยู่จะค้นหาได้เฉพาะหมวดหมู่นั้น แต่ถ้าผู้อ่านได้ปรับโปรแกรมอีกเล็กน้อย จะสามารถ
    สืบค้นในหมวดหมู่อื่นได้ ถ้าใช้หลักการแยกหมวดหมู่ตาม Directory อย่างง่าย
    ถ้าสร้างห้องใหม่ชื่อ software และเก็บนำโปรแกรมในบทนี้ เก็บเข้าในห้องนั้น จะหมายถึงการสร้างกลุ่มของกะทู้ใหม่ ทำให้ใช้งานโปรแกรมต่าง ๆ แยกจากห้องอื่นได้โดยอิสระ เสมือนแยกกลุ่มของกะทู้ออกจากกัน

    ต.ย. 8.1 number.dat (เก็บเลขกะทู้ล่าสุด เพื่อใช้เป็นเลขเริ่มกะทู้ใหม่)
    ต.ย. 8.2 1000000006999.txt (แฟ้มข้อมูลกะทู้ แฟ้มนี้เป็นตัวอย่างกะทู้ที่ 6)
    ต.ย. 8.3 index.html (ฟอร์มควบคุมกะทู้)
    ต.ย. 8.4 boardadd.pl (เพิ่มกะทู้ใหม่)
    ต.ย. 8.5 boardlist.pl (แสดงหัวข้อกะทู้)
    ต.ย. 8.6 boardsearch.pl (ค้นหากะทู้ที่ต้องการจาก Keyword)
    ต.ย. 8.7 boardread.pl (อ่านรายละเอียดในกะทู้)
    ต.ย. 8.8 boardreply.pl (ตอบกะทู้โดยจัดเก็บเป็นหัวข้อใหม่)
    ต.ย. 8.9 boarddel.pl (ลบกะทู้โดยผู้ใช้)
    ต.ย. 8.10 parse.pl (รับค่าจากภายนอกเช่น Post หรือ Get)

    บทที่ 9 ตัวนับ
    ในการทำเว็บ ทุกคนต้องการทราบว่า เว็บของตนมีผู้เข้ามาใช้บริการมากน้อยเพียงใด ถ้าได้ รายงานที่ละเอียดเท่าใด ก็ยิ่งประเมินสถานะของเว็บได้ง่ายเท่านั้น แต่รายงานที่ละเอียด อาจไม่จำเป็นเสมอไป ถ้าผู้พัฒนาเว็บไม่สนใจ บางท่านต้องการเพียงจำนวนต่อเดือนเท่านั้น และหลายท่าน อาจต้องการสร้างตัวนับอย่างง่าย ที่ไม่จำเป็นต้องรายงานสถิติที่ละเอียด
    จากความต้องการในการใช้ตัวนับ(Counter หรือ Tracker) ผู้เขียนจึงเขียนโปรแกรม 3 แบบ ซึ่งใช้ฐานข้อมูลร่วมกัน หรือโปรแกรมร่วมกันบางส่วน ซึ่งหวังว่าโปรแกรมในบทนี้ จะถูกนำไปใช้ประโยชน์ในเว็บของผู้อ่าน หรือบางท่านอาจประยุกต์ไปทำศูนย์บริการ Counter อย่าง counterthai.com ที่ผู้เขียนได้ทดสอบเปิดบริการ

    ต.ย. 9.1 counter.txt (เก็บผลการนับจาก counter)
    ต.ย. 9.2 tracker.txt (เก็บผลการนับจาก tracker)
    ต.ย. 9.3 counter.htm (ฟอร์มแสดงการใช้งาน)
    ต.ย. 9.4 counter.pl (โปรแกรมตัวนับแบบ Text)
    ต.ย. 9.5 counterg.pl (โปรแกรมตัวนับแบบ Gif)
    ต.ย. 9.6 tracker.pl (โปรแกรมตัวนับและจับ IP)
    ต.ย. 9.7 trackershow.pl (โปรแกรมแสดง IP ที่จับได้)

    บทที่ 10 ระบบ Shopping cart
    ทุกวันนี้ e-commerce กำลังมาแรง เว็บที่ล้มเหลวมีน้อยกว่าเว็บของนักลงทุนหน้าใหม่ ซึ่งมักใช้เงินทุน ไปจ้างบริษัทโฆษณาทำประชาสัมพันธ์ ส่วนบริษัทโฆษณาลงทุนสร้าง Application หรือหาเครือข่าย เพื่อรองรับการขยายตัวให้ดูน่าเชื่อถือ เพราะทุกวันนี้บริษัทโฆษณา เกิดขึ้นมาก ทำให้เกิดการแข่งขันสูง บ่อยครั้งที่บริษัทโฆษณาใหญ่มีพลังในการโฆษณามาก แต่หาลูกค้า ที่จะมาจ่ายค่าโฆษณาไม่ได้ รายได้ไม่คุ้ม กับค่าใช้จ่าย จึงเป็นตัวฉุดให้ต้องเลิกกิจการไป
    ในกลุ่มนักลงทุน มีทั้งคนที่มีความรู้ และไม่มีความรู้ ที่ไม่มีความรู้จะใช้วิธีจ้าง บริษัทที่รับทำครบวงจร แต่คนที่มีความรู้จะพัฒนาโปรแกรมของตน โดยลงทุนน้อย แต่ผลเสียของการลงทุนน้อย มักเป็นผลตอบแทนที่น้อย บางครั้งไม่คุ้มในรูปตัวเงิน แต่อาจคุ้มในเรื่องของประสบการณ์ เพราะสามารถนำความรู้ไปใช้ในลักษณะอื่นได้
    ในโลกของ e-commerce กลุ่มคนที่มีมาก คือคนที่อยากรู้ อยากทำ แต่ไม่รู้จะเริ่มอย่างไร ดังนั้นบทความนี้จึงนำเสนอ e-commerce แบบง่าย ที่ปฏิบัติได้จริง สามารถเปิดร้านค้าแบบ online เพียงข้ามคืน เพียงแต่นำโปรแกรมไปปรับปรุงหน้าตาให้สวยงาม แต่ไม่ได้หมายความว่า บทความนี้จะสอนให้เลือกสินค้า หรือขายอย่างไรให้รวย เพราะยังมีรายละเอียดอีกมาก
    ที่นักลงทุนต้องเข้าใจ ซึ่งนักลงทุนที่มีประสบการณ์ในการขายจริงมาก่อน จึงจะประสบความสำเร็จได้ง่ายกว่า แม้ผู้เขียนเองก็ยังไม่ทราบว่าจะเลือกสินค้าอะไรมาขาย เพื่อให้เกิดผลจริงในทางปฏิบัติ เพราะครอบครัวผม ไม่เคยทำธุรกิจส่งออกมาก่อน แม้จะพยายามศึกษา ในทางทฤษฎีมาบ้างก็ตาม แต่ก็ยังไม่พร้อมลงทุน

    ต.ย. 10.1 cartprocess.htm (ฟอร์มให้เลือกสินค้า)
    ต.ย. 10.2 cartprocess.pl (บริการ Cart ใช้ Cookie สำหรับหยิบสินค้าเข้า หรือออก)

    บทที่ 11 กำหนดหน้าเว็บเริ่มต้นโดยผู้ใช้
    Cookie คือพื้นที่สำหรับเก็บค่าที่ถูกส่งมาจากโปรแกรมใน Browser แต่ผู้ใช้อาจปฏิเสธบริการ Cookie ได้ เพราะ Browser ส่วนใหญ่มี Option สำหรับปฏิเสธ Cookie แต่ในปัจจุบัน การใช้ Cookie ยังไม่เคยก่อปัญหาให้กับผู้ใช้ มีเพียงข่าวที่ลือว่า Cookie สามารถเป็นที่ เก็บ หรือแพร่ไวรัสได้
    หัวข้อในบทนี้มี 2 ส่วนคือ พื้นฐานด้าน cookie และเทคนิคการกำหนดเว็บเริ่มต้นของผู้ใช้ ซึ่งจะเริ่มจากการจัดเก็บข้อมูลใน cookie การนำมาใช้ และการประยุกต์ใช้งานให้เห็นถึง ประโยชน์ในด้านหนึ่ง
    จากแนวคิดที่ต้องการให้ผู้ใช้สามารถเลือกหน้าเว็บที่ต้องการเปิดได้ จึงเขียนโปรแกรม ชุดนี้ให้เห็นว่าสามารถทำได้อย่างไร โดยใช้ frame แบ่งการทำงานเป็น 2 ส่วนคือส่วนเลือกเว็บ และส่วนแสดงผล เมื่อเลือกเว็บ และทำการจัดเก็บค่าไว้ใน cookie ส่วนแสดงผลจะทำหน้าที่เลือกหน้าเว็บ ตามที่เคยจัดเก็บไว้ใน cookie หากได้เข้าใจการทำงานของ cookie ในบทนี้ การจะนำไปประยุกต์ใช้ กับระบบ e-commerce หรือ ระบบสามาชิก จะไม่ใช่เรื่องยากอีกต่อไป

    ต.ย. 11.1 cooksave.pl (โปรแกรมกำหนดค่าให้กับ cookie)
    ต.ย. 11.2 cookcall.pl (โปรแกรมเรียกค่าจาก cookie มาใช้)
    ต.ย. 11.3 index.html (Frame สำหรับเรียกเว็บมาแสดง)
    ต.ย. 11.4 menu.pl (เลือกตัวเลือกเว็บ)
    ต.ย. 11.5 setdefault.pl (จัดเก็บตัวเลือกไว้ใน cookie)
    ต.ย. 11.6 begin.pl (เรียกเว็บที่ต้องการมาแสดง)

    บทที่ 12 สร้างภาพโดย PERL
    ปัจจุบันมีเว็บที่บริการสร้างภาพ Graphic ให้ผู้ใช้ เช่น Banner ที่เป็นภาพเคลื่อนไหว ผู้ใช้ไม่ต้องรู้อะไรมาก เพียงกรอกชื่อ และเลือกแบบ จากเว็บที่ให้บริการ จะได้ป้ายขนาด 468*60 มาเป็นของตัวเอง และสามารถนำไปแลกกับเว็บอื่นได้ทันที
    แต่บางครั้งผู้ใช้ต้องการที่จะเขียนโปรแกรมสร้างภาพของตัวเอง หรือเรียนรู้ไว้เพื่อทำ บริการแบบนี้ในอนาคต สำหรับบทเรียนนี้ไม่ถึงกับสอนให้สร้างภาพที่สมบูรณ์ เพียงแสดงตัวอย่าง การสร้างภาพอย่างง่าย 2 มาตรฐาน คือ XBM และ GIF ซึ่ง XBM นั้นผู้ใช้จะเข้าใจได้ง่าย ถ้าเคยศึกษาเรื่องของเลขฐาน 2 และฐาน 16 จนเข้าใจมาก่อน แต่ถ้าไม่รู้ก็เรียนรู้กันได้ ส่วนการสร้างภาพ GIF ทำได้สมบูรณ์มาก ยกเว้นภาพเคลื่อนไหว ที่ยังไม่มีในความสามารถของ FLY สำหรับท่านที่ต้องการนำ FLY มาติดตั้งใน Linux server สามารถหารายละเอียดได้จาก http://martin.gleeson.com/fly

    ต.ย. 12.1 xbitmap.pl (โปรแกรมพิมพ์ภาพด้วย XBM)
    ต.ย. 12.2 18.pl (โปรแกรมพิมพ์ 18 ด้วย XBM)
    ต.ย. 12.3 9to0.pl (โปรแกรมพิมพ์ 9 ถึง 0 ด้วย XBM)
    ต.ย. 12.4 circleline.pl (โปรแกรมวาดภาพด้วย FLY)
rspsocial
Thaiall.com