การเขียนโปรแกรม CGI ทับทิม
ทับทิมเป็นภาษาสากลที่ไม่เพียงหนึ่งที่ใช้ในการพัฒนาเว็บภาษา แต่การพัฒนาทับทิมในงานเว็บและเครื่องมือบนเว็บที่พบมากที่สุด
ไม่เพียง แต่คุณสามารถใช้ทับทิมจะเขียนเซิร์ฟเวอร์ของคุณเอง SMTP โปรแกรม FTP หรือทับทิมเว็บเซิร์ฟเวอร์ แต่ยังสามารถใช้ในการเขียนโปรแกรม CGI ทับทิม
ขอใช้เวลาสักครู่เพื่อเรียนรู้ทับทิม CGI แก้ไข
การท่องเว็บ
เพื่อทำความเข้าใจวิธี CGI ทำงานเราสามารถคลิกที่ลิงค์บนหน้าเว็บหรือ URL ของกระบวนการ:
- 1 ใช้เบราว์เซอร์ของคุณเพื่อเข้าถึง URL และเชื่อมต่อไปยังเว็บเซิร์ฟเวอร์ HTTP
- 2 เว็บเซิร์ฟเวอร์ได้รับข้อความร้องขอจะถูกแยก URL และมองไฟล์เข้าถึงได้บนเซิร์ฟเวอร์ถ้ามีถ้ามีจะกลับเนื้อหาของแฟ้มมิฉะนั้นก็จะส่งกลับข้อผิดพลาด
- 3, เบราว์เซอร์ได้รับข้อมูลจากเซิร์ฟเวอร์และแสดงไฟล์ที่ได้รับหรือข้อความผิดพลาด
โปรแกรม CGI สามารถเป็นสคริปต์ทับทิมสคริปต์ Python สคริปต์ PERL, เชลล์สคริปต์โปรแกรม C หรือ C ++
แผนภูมิ CGI
การกำหนดค่าเซิร์ฟเวอร์เว็บและการสนับสนุน
ก่อนที่จะทำการเขียนโปรแกรม CGI, ให้แน่ใจว่าเว็บเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าให้สนับสนุน CGI และ CGI จัดการ
Apache สนับสนุนการกำหนดค่า CGI:
ตั้งค่าไดเรกทอรี CGI นี้:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
เซิร์ฟเวอร์ HTTP ทั้งหมดที่จะรันโปรแกรม CGI จะถูกเก็บไว้ในไดเรกทอรีที่กำหนดไว้ล่วงหน้า ไดเรกทอรีนี้เรียกว่าไดเรกทอรี CGI และโดยการประชุมมันเป็นชื่อ / var / www / directory cgi-bin
CGI .cgi นามสกุลไฟล์ทับทิมยังสามารถใช้ในการขยาย .rb
โดยค่าเริ่มต้นการกำหนดค่าเซิร์ฟเวอร์ Linux ทำงานไดเรกทอรี cgi-bin เป็น / var / www
หากคุณต้องการที่จะระบุไดเรกทอรีที่แตกต่างกันเพื่อเรียกใช้สคริปต์ CGI, คุณสามารถปรับเปลี่ยนการตั้งค่าไฟล์ httpd.conf ดังต่อไปนี้:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
เพิ่ม AddHandler ต่อท้าย .rb เพื่อให้เราสามารถเข้าถึงปลาย .rb ของไฟล์สคริปต์ทับทิม:
AddHandler cgi-script .cgi .pl .rb
เขียนสคริปต์ CGI
พื้นฐานรหัส CGI ทับทิมดังนี้
#!/usr/bin/ruby puts "Content-type: text/html\n\n" puts "<html><body>This is a test</body></html>"
คุณสามารถเก็บรหัสเพื่อ test.cgi ไฟล์เซิร์ฟเวอร์และคนสุดท้ายที่จะบอกสิทธิ์เพียงพอในการดำเนินการตามสคริปต์ซีจี
ถ้าที่อยู่ที่คุณยืนเป็น http://www.example.com/, http://www.example.com/test.cgi ใช้ในการเข้าถึงโปรแกรมผลลัพธ์คือ: "นี่คือการทดสอบ."
เบราว์เซอร์ในการเข้าถึงเว็บไซต์ที่เว็บเซิร์ฟเวอร์จะพบไฟล์ test.cgi ในไดเรกทอรีเว็บไซต์และจากนั้นในการแก้ไขล่ามและสคริปต์รหัสทับทิมโดยการเข้าถึงเอกสาร HTML
ใช้ cgi.rb
ทับทิมสามารถเรียกห้องสมุด CGI การเขียนสคริปต์ CGI ที่ซับซ้อนมากขึ้น
รหัสต่อไปนี้เรียกว่าห้องสมุดสคริปต์ CGI เพื่อสร้างสคริปต์ซีจี
#!/usr/bin/ruby require 'cgi' cgi = CGI.new puts cgi.header puts "<html><body>This is a test</body></html>"
รหัสต่อไปนี้สร้างวัตถุ CGI และหัวพิมพ์ข้อมูล
ประมวลผลแบบฟอร์ม
การใช้ห้องสมุด CGI สามารถหาได้ในสองวิธีที่จะส่งแบบฟอร์ม (หรือพารามิเตอร์ใน URL) ของข้อมูลเช่น URL :? /cgi-bin/test.cgi FirstName = Zara และนามสกุล = อาลี
คุณสามารถใช้ CGI # [] โดยตรงได้รับพารามิเตอร์ FirstName และนามสกุล:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi['FirstName'] # => ["Zara"] cgi['LastName'] # => ["Ali"]
อีกวิธีหนึ่งสำหรับการได้รับข้อมูลรูปแบบ:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new h = cgi.params # => {"FirstName"=>["Zara"],"LastName"=>["Ali"]} h['FirstName'] # => ["Zara"] h['LastName'] # => ["Ali"]
รหัสต่อไปนี้จะใช้ในการดึงข้อมูลที่สำคัญทั้งหมด:
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi.keys # => ["FirstName", "LastName"]
หากรูปแบบมีหลายเขตข้อมูลที่มีชื่อเดียวกันแล้วค่าของเขตข้อมูลเดียวกันจะถูกเก็บไว้ในอาร์เรย์
ตัวอย่างต่อไปนี้ระบุรูปแบบของสามช่องเหมือนกัน "ชื่อ" ค่าของ "ซาร่า", "Huma" และ "Nuha":
#!/usr/bin/ruby require 'cgi' cgi = CGI.new cgi['name'] # => "Zara" cgi.params['name'] # => ["Zara", "Huma", "Nuha"] cgi.keys # => ["name"] cgi.params # => {"name"=>["Zara", "Huma", "Nuha"]}
หมายเหตุ: ทับทิมอัตโนมัติจะตรวจสอบวิธี GET และ POST ที่มีความจำเป็นที่จะแยกแยะความแตกต่างระหว่างสองวิธี
นี่คือรหัส HML ที่เกี่ยวข้อง:
<html> <body> <form method="POST" action="http://www.example.com/test.cgi"> First Name :<input type="text" name="FirstName" value="" /> <br /> Last Name :<input type="text" name="LastName" value="" /> <input type="submit" value="Submit Data" /> </form> </body> </html>
การสร้างรูปแบบและแบบฟอร์ม HTML
CGI มีหลายวิธีที่จะสร้าง HTML แท็ก HTML แต่ละคนมีวิธีการที่สอดคล้องกัน ก่อนที่จะใช้วิธีการเหล่านี้จะต้องอัตราส่วน CGI ในการสร้างวัตถุ CGI.new
เพื่อที่จะทำให้ฉลากรังง่ายขึ้นวิธีการเหล่านี้จะเป็นเนื้อหาที่เป็นบล็อกของรหัสการป้องกันรหัสส่งกลับสตริงเป็นป้ายเนื้อหา ดังต่อไปนี้:
#!/usr/bin/ruby require "cgi" cgi = CGI.new("html4") cgi.out{ cgi.html{ cgi.head{ "\n"+cgi.title{"This Is a Test"} } + cgi.body{ "\n"+ cgi.form{"\n"+ cgi.hr + cgi.h1 { "A Form: " } + "\n"+ cgi.textarea("get_text") +"\n"+ cgi.br + cgi.submit } } } }
หลบหนีสตริง
เมื่อคุณกำลังเผชิญกับพารามิเตอร์ใน URL หรือ HTML ข้อมูลในแบบฟอร์มที่คุณจะต้องระบุตัวอักษรพิเศษหลบหนีเช่นเครื่องหมายคำพูด ( "), ทับ (/)
ทับทิม CGI วัตถุให้ CGI.escape CGI.unescape และวิธีการที่จะจัดการกับการหลบหนีอักขระพิเศษเหล่านี้:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
รหัสข้างต้นจะถูกดำเนินการดังต่อไปนี้:
#!/usr/bin/ruby require 'cgi' puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
อีกชุดหนึ่งตัวอย่าง:
#!/usr/bin/ruby require 'cgi' puts CGI.escapeHTML('<h1>Zara Ali/A Sweet & Sour Girl</h1>')
รหัสข้างต้นจะถูกดำเนินการดังต่อไปนี้:
<h1>Zara Ali/A Sweet & Sour Girl</h1>'
วิธีการเรียน CGI ที่ใช้กันทั่วไป
นี่คือวิธีการที่สมบูรณ์ในระดับ CGI ทับทิม
- CGI ทับทิม - วิธีห้องสมุด CGI มาตรฐานที่เกี่ยวข้อง
คุกกี้และการประชุม
- ซีจีคุกกี้ทับทิม - วิธีการจัดการกับคุกกี้ CGI
- ซีจีเซสชั่นทับทิม - วิธีการจัดการกับการประชุม CGI