พื้นฐาน CGI ผนึกกำลัง SSI เพื่อการประยุกต์ใช้
ผู้เขียน: ทรงเกียรติ ภาวดี
ISBN: 974-87211-9-1
จำนวนหน้า: xxx หน้า
ขนาด: 14. 5x 21 ซม.
รูปแบบหนังสือ:
หนังสือขาวดำ
ราคาปก: 195 บาท
ราคาสั่งซื้อ: 170 บาท
- แจกแจงความรู้พื้นฐานต่างๆ ของ CGI อย่างละเอียดเป็นขั้นตอน เหมาะสำหรับผู้เริ่มศึกษา CGI ควรทราบ
- เรียนรู้การทำงานของเว็บเซิร์ฟเวอร์และกลไกการเชื่อมโยงกับ CGI ให้เข้าใจอย่างง่ายๆ
- ตีแผ่ลักษณะการส่งข้อมูลจากฟอร์มไปยัง CGI รวมทั้งการนำ SSI มาใช้งานกับเว็บเพจและ CGI ทุกแง่มุม
- อธิบายการเขียนสคริปต์ CGI ด้วยภาษา Perl พร้อมตัวอย่างที่นำไปใช้งานได้จริง เช่น เคาน์เตอร์, แบนเนอร์, การส่งเมลผ่านเว็บ ฯลฯ
- แถมพิเศษ! แนะนำวิธีการใช้และการรัน CGI ในเซิร์ฟเวอร์ฟรี Hypermart.net
บทที่ 1 ความเกี่ยวพันของเว็บเซิร์ฟเวอร์และ CGI
ถ้าคิดจะเขียน CGI แล้ว เว็บเซิร์ฟเวอร์น่าจะเป็นสิ่งแรกที่ผู้อ่านควรทำความเข้าใจให้ถ่องแท้เสียก่อน เพราะมีส่วนเกี่ยวโยงกับ CGI อย่างแยกไม่ออก เนื่องจาก CGI จะทำงานจากการเรียกผ่านเว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์คืออะไร ทำงานได้อย่างไร และเครื่องมือต่างๆ ที่ต้องใช้ในการเขียน CGI มีอะไรบ้าง เราจะได้ทราบกันในบทนี้
- เว็บเซิร์ฟเวอร์คือผู้ให้บริการข้อมูล
- ใช้โปรแกรมเว็บเซิร์ฟเวอร์ตัวไหนดี
- เครื่องไหนจะเป็นเว็บเซิร์ฟเวอร์ได้บ้าง
- การทำงานของเว็บเซิร์ฟเวอร์
- ที่มาของ CGI
- CGI จะเป็นอะไรก็ได้
- CGI ทำอะไรได้บ้าง
- CGI ทำงานเป็นฉากหลัง
- ภาษาสำหรับใช้เขียน CGI
- เว็บเซิร์ฟเวอร์ทำอย่างไรกับ CGI แบบสคริปต์
- ตัวอย่างซอร์ซโค้ดของโปรแกรมและสคริปต์ CGI
- สิ่งที่ต้องใช้เมื่อจะเขียน CGI...
- เตรียมตัวก่อนที่จะศึกษาบทต่อไป
บทที่ 2 ใช้ OmniHTTPd แปลงพีซีเป็นเว็บเซิร์ฟเวอร์
การเขียน CGI จะต้องใช้เซิร์ฟเวอร์ที่ยอมให้รัน CGI ได้ ซึ่งทำให้บางคนเข้าใจผิดว่าต้องใช้เซิร์ฟเวอร์ขนาดใหญ่ๆ ที่เป็นระบบ UNIX หรือ Windows NT เท่านั้น แต่ในบทนี้จะบอกให้ทราบว่า มีเพียงเครื่องพีซีธรรมดาสักเครื่อง แล้วติดตั้งโปรแกรม OmniHTTPd ก็สามารถแปลงสภาพพีซีให้กลายเป็นเว็บเซิร์ฟเวอร์สำหรับทดลองเขียน CGI ได้แล้ว
- เปลี่ยนเครื่องของเราให้เป็นเว็บเซิร์ฟเวอร์อย่างง่าย
- โปรแกรมเว็บเซิร์ฟเวอร์ OmniHTTPd
- สำรวจไดเรกทอรีที่โปรแกรมติดตั้งสร้างไว้ให้
- htdocs ไดเรกทอรีนี้สำหรับไฟล์ HTML
- ปรับแต่งค่าให้ OmniHTTPd ก่อนใช้งาน
- กำหนดค่าที่ต้องใช้โดยรวม
- กำหนดรายละเอียดอื่นๆ ของเว็บเซิร์ฟเวอร์
- ทดสอบเซิร์ฟเวอร์กันหน่อย
- อยากใช้ SSI แต่ไม่อยากใช้ .shtml
บทที่ 3 การทำงานของ CGI ที่ต้องใช้และเจอบ่อย
หลักการพื้นๆ ของ CGI ที่จำเป็นสำหรับผู้เริ่มต้น มีเพียงไม่กี่อย่าง เช่น การส่งผลการทำงานของ CGI กลับไปให้ผู้ใช้ดูทางเว็บเบราเซอร์หรือวิธีการเรียกให้ CGI ทำงาน ในบทนี้จะได้อธิบายหลักการพื้นฐานเหล่านี้ รวมไปถึงสาเหตุข้อผิดพลาดทั้งหลายของ CGI และวิธีการแก้ไขเบื้องต้นในแง่มุมต่างๆ ให้ผู้อ่านมีความเข้าใจอย่างถูกต้อง ก่อนที่จะเขียน CGI จริงๆ
- เขียน CGI ส่งข้อมูลออกมาได้อย่างไร
- ส่ง Content-type ผิดรูปแบบ
- ส่ง Content-type ที่เว็บเบราเซอร์ไม่รู้จัก
- เรียก CGI ให้ทำงานด้วยวิธีการอื่น
- สารพัดความผิดพลาดของ CGI และการแก้ไข
- หาข้อผิดพลาดจาก log file
บทที่ 4 กลวิธีส่งข้อมูลจากฟอร์มไปยัง CGI
ตัวกลางที่จะส่งข้อมูลจากเว็บเพจไปให้ CGI ในเซิร์ฟเวอร์รับไปทำงานได้อย่างง่ายๆ ก็คือ ฟอร์ม บทนี้จะอธิบายกลไกการส่งข้อมูลจากฟอร์มไปยัง CGI อย่างละเอียดเป็นขั้นตอน ตั้งแต่การป้อนข้อมูลจากฟอร์ม จนกระทั่งข้อมูลถูกนำไปใช้งานใน CGI ได้ และแนะนำวิธีการเขียนสคริปต์ทำงานกับฟอร์มให้ง่ายขึ้นด้วยการใช้โมดูลสำเร็จรูปที่ชื่อ CGI.pm
- โครงสร้างและการทำงานของฟอร์ม
- อินพุต SUBMIT กับ RESET
- ฟอร์มส่งข้อมูลอะไรและส่งที่ไปไหน
- ระบุ NAME ถ้าต้องการให้ส่งข้อมูลออกมา
- ชื่ออินพุตซ้ำกันจะเกิดอะไรขึ้น
- ส่งข้อมูลจากฟอร์มไปยัง CGI แบบ GET
- เขียน CGI แกะข้อมูลที่ส่งมาจากฟอร์ม
- POST กับ GET ต่างกันอย่างไร
- ทางเลือกที่ง่ายกว่าในการแกะข้อมูลจากฟอร์ม
- รู้ได้อย่างไรว่ามีโมดูลอะไรให้ใช้ได้บ้าง
- ตัวอย่างการเขียนฟอร์มที่มีอินพุตหลายๆ แบบ
บทที่ 5 เสริมพลัง CGI ด้วย SSI
SSI เป็นอีกคำหนึ่งที่เราต้องเจอเมื่อเขียน CGI หน้าที่ของ SSI คือ เป็นตัวช่วยการทำงานของ CGI ให้ยืดหยุ่นและง่ายขึ้น บทนี้เราจะมาดูกันว่า CGI มีจุดด้อยอย่างไร ที่ทำให้ต้องมี SSI เข้ามาช่วยทำงาน รวมทั้งข้อดีและข้อเสียของการใช้ SSI เพื่อให้ตัดสินใจได้เองว่า เหมาะสมที่จะนำเอา SSI มาใช้กับเว็บไซต์และ CGI ของเราหรือไม่
- ใช้ CGI แทรกข้อความลงใน HTML ไม่ใช่เรื่องง่าย
- ปัญหาใหญ่ของ CGI ที่สร้างไฟล์ HTML ออกมา
- ตัวตนที่แท้จริงของ SSI
- เว็บเซิร์ฟเวอร์รู้ได้อย่างไรว่าเป็น SSI
- ลองดูว่าใช้ SSI ได้หรือเปล่า
- เป็นผู้ดูแลระบบเอง จะเปิดให้ใช้ SSI ดีไหม
- มุมมองของ CGI, SSI และ ASP
- กำหนดให้ SSI ทำงานได้อย่างไร
บทที่ 6 SSI ภาคเจาะลึกการใช้งาน
จากความเข้าใจเรื่อง SSI ในบทก่อน บทนี้จะเป็นการเจาะลึกการนำ SSI มาใช้งานให้เกิดประสิทธิภาพสูงสุด ตั้งแต่การนำ SSI มาใช้ในเว็บเพจโดยที่ไม่เกี่ยวข้องกับ CGI เลย การกำหนดเงื่อนไขและรูปแบบการแสดงผลของ SSI จนถึงวิธีการเขียน CGI เพื่อให้ถูกเรียกทำงานผ่านโค้ด SSI ได้
- กฎเกณฑ์เบื้องต้นของการเขียน SSI
- เขียนโค้ด SSI ผิดจะเกิดอะไร
- คำสั่ง echo โชว์ค่าตัวแปรของเซิร์ฟเวอร์
- คำสั่ง flastmod บอกวันที่แก้ไขข้อมูลครั้งสุดท้าย
- คำสั่ง fsize บอกขนาดของไฟล์
- ปรับแต่งข้อมูลก่อนแทรกด้วย config
- คำสั่ง include ใช้ดึงเนื้อหาไฟล์อื่นมาแทรก
- เรียกสคริปต์หรือ CGI ให้ทำงานด้วยคำสั่ง exec
บทที่ 7 สุ่มข้อความมาแสดงในเว็บเพจ
เว็บไซต์ที่ข้อมูลมีการเปลี่ยนแปลงหรืออัปเดตบ่อยๆ เป็นจุดดึงดูดให้ผู้ใช้แวะกลับมาเยี่ยมชมได้ การสุ่มข้อความ เช่น คำคมหรือกลอน มาแสดงในเว็บเพจ จึงเป็นอีกเทคนิคหนึ่งที่เว็บมาสเตอร์นิยมนำมาใช้ เพื่อให้ดูเสมือนว่าเว็บเพจมีการเปลี่ยนแปลงอยู่เสมอ ในบทนี้จะเป็นการเสนอเทคนิคที่ว่านี้พร้อมทั้งแนวทางประยุกต์ไปใช้งานอื่นๆ
- แสดงวันที่แบบไทยๆ ในเว็บเพจ
- สุ่มข้อความมาแสดง
- สุ่มข้อความจากไฟล์มาแสดง
- ต้องการแทรกข้อความยาวๆ จะทำไงดี
- ไม่สุ่มข้อความมาแสดง-แต่ให้เปลี่ยนตามวัน
บทที่ 8 ลุ้นตัวเลขเคาน์เตอร์นับจำนวนผู้ชมเว็บเพจ
ตัวเลขเคาน์เตอร์ที่แสดงในเว็บเพจต่างๆ ดูจะเป็นอีกสิ่งหนึ่งที่ผู้เริ่มเขียน CGI อยากจะเขียนขึ้นมาใช้เอง ในบทนี้จะอธิบายการสร้างเคาน์เตอร์ทั้งแบบข้อความและแบบกราฟิก เริ่มจากหลักการของเคาน์เตอร์โดยรวม จนถึงการสร้างเคาน์เตอร์ใช้งานจริง รวมทั้งเทคนิคต่างๆ ที่จะเสริมเข้าไปในเคาน์เตอร์ได้
- หลักการของเคาน์เตอร์
- เคาน์เตอร์แบบ text
- เคาน์เตอร์แบบกราฟิกที่เรียกผ่าน SSI
- เคาน์เตอร์แบบกราฟิกที่เรียกผ่านแท็ก <IMG>
- เริ่มสร้างเคาน์เตอร์แบบ text ต้องทำอะไรบ้าง
- ไม่มีปัญหาเวลาเกิด Internal Server Error
- ปรับแต่งความสวยงามของเคาน์เตอร์
- แล้วถ้าเป็นเคาน์เตอร์แบบกราฟิก มีขั้นตอนอย่างไร
- เคาน์เตอร์ไม่นับเมื่อเราเปิดดูเอง
- ประโยชน์ของข้อมูลผู้ใช้ที่บันทึกไว้ใน log file
- CGI ตัวเดียวนับแยกเว็บเพจแต่ละหน้า
บทที่ 9 จัดการกับลิงก์อย่างมีชั้นเชิง
ส่วนสำคัญของเอกสาร HTML ที่ทำให้เว็บเพจเชื่อมถึงกันได้อย่างง่ายๆ ก็คือ ลิงก์ โดยปกติแล้วการสร้างลิงก์ในเอกสาร HTML จะเขียนฝังไว้ตายตัวในเว็บเพจ แต่ในบทนี้จะเป็นการใช้ CGI เข้ามาจัดการกับลิงก์ให้เป็นแบบ dynamic เพื่อความง่ายในการแก้ไขหรือปรับปรุงและเพิ่มลูกเล่นต่างๆ เช่น บันทึกจำนวนครั้งของการคลิกลิงก์ เป็นต้น
- ทำความเข้าใจเรื่องของลิงก์
- ตัวอย่างปัญหาของเว็บรวมลิงก์
- จะแก้ปัญหา "ลิงก์ตาย" ได้อย่างไร
- เตรียมข้อมูลของลิงก์เก็บไว้ในไฟล์
- เริ่มจาก CGI สร้างลิงก์แบบข้อความ
- ทำความเข้าใจเรื่องรูปแบนเนอร์สำหรับลิงก์
- สร้างลิงก์แบบรูปกราฟิก
- ลิงก์ในดร็อปดาวน์ลิสต์บ็อกซ์
- ใช้อินพุต SELECT ทำเป็นลิงก์ได้อย่างไร
- เขียน CGI ให้อินพุต SELECT ทำงานเป็นลิงก์
- รู้ได้อย่างไรว่ามีคนคลิกลิงก์กี่ครั้งแล้ว
- เขียน CGI เพิ่มตัวนับให้กับลิงก์
บทที่ 10 สับเปลี่ยนหมุนเวียนโชว์ป้ายโฆษณา
ดูเหมือนว่าแบนเนอร์จะเป็นอุปกรณ์ประกอบเว็บเพจอย่างหนึ่งไปเสียแล้ว ไม่ว่าจะเป็นแบนเนอร์สำหรับลิงก์หากันเฉยๆ หรือแบนเนอร์ที่มีรายได้จากการคลิก บทนี้จะบอกวิธีการเขียน CGI เพื่อสุ่มรูปภาพแสดงออกมาในลักษณะของแบนเนอร์ เทคนิคการป้องกันและแก้ปัญหาต่างๆ ที่อาจจะเกิดขึ้นในการแสดงรูปแบนเนอร์ รวมถึงการสร้างแบนเนอร์ที่เป็นลิงก์ให้ผู้ใช้คลิกได้อีกด้วย
- แนวคิดของการเขียน CGI ให้รูปภาพเปลี่ยนแปลง
- เปลี่ยนรูปแบ็กกราวด์รายวัน
- แบนเนอร์อย่างเดียวไม่มีลิงก์
- แก้ไขปัญหาการโหลดกราฟิกไม่สมบูรณ์
- แบนเนอร์ที่มีสถานะเป็นลิงก์ด้วย
บทที่ 11 เปิดห้องแสดงภาพสะสมสวยๆ
การแสดงรูปภาพจำนวนมากๆ ในเว็บเพจแบบ gallery นั้น ถ้าใช้ CGI เข้ามาช่วย จะทำให้การปรับปรุงข้อมูลทำได้ง่ายมาก บทนี้จะเป็นการเขียน CGI เพื่อจัดการนำรูปออกมาแสดงในลักษณะของ gallery ทั้งแบบแสดงออกมาเป็นลิงก์ข้อความและกราฟิก รวมทั้งการใส่เฟรมให้กับ gallery ด้วย
- แนวคิดของการใช้ CGI จัดการกับลิงก์ในแกลเลอรี
- หนทางที่สะดวกกว่า
- สร้างแกลเลอรีที่มีลิงก์แบบข้อความ
- สร้างแกลเลอรีที่มีลิงก์แบบรูปกราฟิก
- ใส่เฟรมให้แกลเลอรี
บทที่ 12 ส่งเมลผ่านเว็บ ไม่ใช่เรื่องยาก
การเขียน CGI ส่งเมลผ่านเว็บเป็นเรื่องไม่ยาก และไม่จำเป็นต้องเขียน socket เชื่อมต่อกับเมลเซิร์ฟเวอร์ บทนี้จะเป็นการเขียน CGI ส่งเมลโดยเรียกใช้โปรแกรม Sendmail เพื่อทำหน้าที่ส่งเมล รวมทั้งบอกแนวทางป้องกันปัญหาต่างๆ ที่อาจเกิดขึ้นกับการใช้โปรแกรม Sendmail และการดัดแปลง CGI ไปใช้งานลักษณะอื่นอีก เช่น สร้าง mailing list หรือแนะนำเว็บไซต์ผ่านอีเมล
- ทดลองใช้โปรแกรม Sendmail
- เรียก Sendmail ให้ทำงานผ่านสคริปต์
- สร้างบริการส่งเมลผ่านเว็บ
- ป้อนอีเมลเข้ามาผิดรูปแบบ CGI ก็อาจจะล่ม
- ป้องกันปัญหานี้ได้อย่างไร
- แนะนำเว็บไซต์ผ่านเมล
- สมัครสมาชิกรับข่าวสารทางเมล
- เขียน CGI ทำหน้าที่เป็น mailing list
- Sendmail สำหรับ Windows
ภาคผนวก ลองใช้ CGI ที่ Hypermart
- สร้างไดเรกทอรี /cgi-bin สำหรับเก็บสคริปต์ CGI
- เขียน CGI ง่ายๆ เพื่อทดสอบ
- อัปโหลดสคริปต์ CGI ไปเก็บไว้ใน /cgi-bin ของเซิร์ฟเวอร์
- เปลี่ยนแอตทริบิวต์ของสคริปต์ในเซิร์ฟเวอร์เป็น 755
- ทดลองเรียกสคริปต์ test.cgi ในเซิร์ฟเวอร์ให้ทำงาน
- ทดสอบ SSI
- ทดสอบการเรียกใช้โมดูล CGI