البرمجة روبي CGI
روبي هي لغة عالمية، وليس فقط تلك المستخدمة في لغة تطوير الشبكة، ولكن تطوير روبي في تطبيقات الويب وأدوات ويب هي الأكثر شيوعا.
ليس فقط يمكنك استخدام روبي لكتابة الخادم الخاص بك SMTP، برنامج FTP أو ملقم ويب روبي، ولكن أيضا يمكن أن يكون استخدام البرمجة روبي CGI.
دعونا نتوقف لحظة لتعلم CGI روبي تحريرها.
تصفح الإنترنت
لفهم أفضل لكيفية يعمل CGI، يمكننا أن تنقر على وصلة على صفحة ويب أو URL من هذه العملية:
- 1، استخدام المتصفح للوصول إلى URL والاتصال إلى ملقم HTTP على شبكة الإنترنت.
- 2، يتلقى ملقم ويب سيتم تحليل رسالة طلب URL وتبدو الوصول إلى الملفات على الخادم إذا كان هناك، إذا كان هناك للعودة محتويات الملف، وإلا فإنها ترجع رسالة خطأ.
- 3، يتلقى متصفح المعلومات من الخادم ويعرض الملف أو خطأ الرسائل الواردة.
ويمكن لبرامج CGI يكون السيناريو روبي، بيثون السيناريو، المخطوطة، شيل، C أو C ++ البرامج.
CGI الرسم البياني
تكوين خادم الويب والدعم
قبل إجراء البرمجة CGI، تأكد من أنه قد تم تكوين ملقم ويب لدعم CGI ومعالج CGI.
أباتشي يدعم التكوين CGI:
إعداد دليل CGI:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
يتم تخزين كل ملقم HTTP لتنفيذ برامج CGI في دليل تكوين مسبقا. ويسمى هذا الدليل الدليل CGI، والمؤتمرات، وأطلق عليها اسم / فار / على شبكة الاتصالات العالمية / الدليل-CGI بن.
ملف CGI تمديد .cgi، روبي يمكن أن تستخدم أيضا تمديد .rb.
افتراضيا، تكوين الملقم تشغيل لينكس دليل CGI بن هو / فار / على شبكة الاتصالات العالمية.
إذا كنت ترغب في تحديد دليل آخر لتشغيل البرامج النصية CGI، يمكنك تعديل ملف تكوين ملف httpd.conf على النحو التالي:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
إضافة .rb AddHandler لاحقة، حتى نتمكن من الوصول إلى نهاية .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 ملقم ملف وآخر لنقل الصلاحيات الكافية لأداء كبرنامج نصي CGI.
إذا كان العنوان الذي تقف http://www.example.com/، http://www.example.com/test.cgi المستخدمة للوصول إلى البرنامج، والناتج هو: "هذا هو اختبار".
المتصفح للوصول إلى موقع ويب، سيجد ملقم ويب ملف test.cgi في دليل الموقع، ومن ثم إلى حل مترجم والكتابة كود روبي عن طريق الوصول إلى وثيقة HTML.
استخدام cgi.rb
روبي يمكن استدعاء مكتبة CGI لكتابة البرامج النصية 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 الاسم الأول = زارا واسم العائلة = علي.
يمكنك استخدام CGI # [] الحصول مباشرة المعلمات الاسم الأول واسم العائلة:
#!/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"]
إذا كان النموذج يحتوي على حقول متعددة بنفس الاسم، ثم سيتم تخزين القيمة من نفس الحقل في صفيف.
في المثال التالي، حدد شكل من ثلاثة حقول متطابقة "اسم" قيم "زارا"، "هوما" و "نهى":
#!/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 وأساليب وظيفة، ليست هناك حاجة للتمييز بين الطريقتين.
هنا هو قانون 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.
- جلسات CGI روبي - كيفية التعامل مع جلسات CGI.