Visual Basic
การที่จะดูว่าภาษาใด สามารถเขียน CGI ได้ เราจะดูที่ความสามารถในการติดต่อกับ Standard I/O ของภาษานั้น ๆ ว่าสามารถทําได้หรือไม่ หลักการเขียน CGI นั้น จะมีหลักการเดียวกัน แต่จะต่างกันตรงที่การใช้คําสั่งในภาษา ยกตัวอย่างเช่น ในการเขียน CGI บรรทัดแรกสุด เราจะต้องกําหนด Content-type ให้เป็น text/html ตามด้วยรหัส
ใช่มั้ยครับ ถ้าเราเขียนภาษา Perl เราจะเขียนดังนี้
print Content-type:text/html
;
print ..........;
แต่ถ้าเราเขียนด้วยภาษา C (ใช้ Visual C++ หรือ Turbo C) เราจะต้องเขียนดังนี้
#include
void main(){
printf(Content-type:text/html
);
printf(...............);
}
จากข้างต้น เป็นการเขียน CGI บน NT จะเห็นได้ว่า ทั้ง 2 โปรแกรมนั้น บรรทัดแรกจะเริ่มที่ การกําหนด content-type ให้เป็น text/html โดยใช้ Standard I/O ธรรมดา ๆ เห็นได้ชัดว่าจะใช้คําสั่งที่ต่างกันในภาษา Perl และ C
ข้อแตกต่างระหว่างการใช้ภาษา C และ perl นั้นคือ ถ้าใช้ Perl ไม่ว่าจะเป็นบน UNIX หรือ NT เราจะบันทึกเป็นเท็กไฟล์เท่านั้น นําไปใช้ได้เลย แต่ถ้าเขียนด้วยภาษา C เราจะต้องคอมไพล์และลิงค์ก่อน เช่น ถ้าเราใช้ Visual C++ เราจะต้องสร้าง Application แบบ Win32 Application คือแบบ Console เท่านั้น และจะต้อง Build โปรแกรม จากนั้นก็ Upload ไฟล์ .exe ที่ได้นั้นไปใช้ บน UNIX ก็เช่นกัน เขียนเสร็จแล้วเราจะต้องคอมไพล์ด้วยคําสั่ง cc หรือ gcc จากนั้นก็จึงนําเอาไฟล์ที่ได้ เปลี่ยนนามสกุลให้เป็น .cgi และนําไปใช้
มีภาษาไม่กี่ภาษาที่ใช้เขียน CGI ได้โดยไม่ต้องคอมไพล์โค๊ดให้เป็นไฟล์ Execute ก่อน นั่นก็คือ Perl , Tcl/Tk และ Shell Script เป็นต้น
สําหรับนามสกุลของไฟล์ที่เป็น CGI นั้น ขึ้นอยู่กับว่าโปรแกรม Web Server ที่รันอยู่จะกําหนดเป็นอะไร โดยผู้ดูแลระบบใหญ่ (บิ๊กมิน) จะเป็นผู้กําหนดตัวเลือกนี้ได้เอง ส่วนมาก บน UNIX ไฟล์ที่จะใช้เป็น CGI นั้นจะต้องเป็นไฟล์ที่มีนามสกุล .cgi (ส่วนมาก) เมื่อเราคอมไพล์ CGI ที่เขียนด้วย C ไฟล์ที่ได้จะไม่มีนามสกุล เราก็อาจจะเปลี่ยนให้ไฟล์นั้นเป็น .cgi ซะ เพื่อให้เป็นที่รู้กัน และบน UNIX ไฟล์ที่เป็น CGI นั้น จะสามารถเก็บเอาไว้ได้ในทุก ๆ ที่ ไม่จําเป็นต้องอยู่ในไดเร็กทอรี่ /cgi-bin อย่างเช่นที่ hypermart ไงครับ
แต่ถ้าเป็นไฟล์ CGI บน NT ถ้า Web Server ที่ใช้ IIS เราจะสามารถใช้ CGI ที่มีนามสกุลเป็น .exe , .dll (ISAPI) ได้ ซึ่งถ้า Server นั้นมีการติดตั้งภาษา Perl เอาไว้ เราก็จะสามารถเขียน CGI ด้วยภาษา Perl ได้ โดยทางผู้ดูแลระบบอาจจะกําหนดให้ไฟล์ .pl หรือ .plx เป็นไฟล์ CGI ก็ขึ้นอยู่กับท่านเขาล่ะครับ เราต้องลองติดต่อสอบถามดู
โปรแกรม CGI ที่จะรันบน NT นั้น ส่วนมากจะมี cgi-bin ให้กับเรา เพื่อจะสามารถกําหนดไดเร็กทอรี่ให้ execute ได้ หากเราเคยใช้ IIS มาก่อน เราจะเข้าใจเวลาที่เรากําหนดไดเร็กทอรี่ให้ Execute ใน IIS ลองหาหนังสือเกี่ยวกับ WindowsNT ภาษาไทยมาลองอ่านดูนะครับ ในหัวข้อ IIS (internet Information Server) ในเรื่องของการสร้างไดเร็กทอรี่ และการกําหนดโหมดให้สามารถ read , write หรือ execute ได้
เอาล่ะครับ เรามาพักเรื่องของภาษาที่ใช้เขียน cgi ไว้เพียงเท่านี้กันก่อนครับ เราจะมาว่ากันเต็ม ๆ กับการทดสอบในบทต่อ ๆ ไปดีกว่า