Latest web development tutorials

البرمجة روبي CGI

روبي هي لغة عالمية، وليس فقط تلك المستخدمة في لغة تطوير الشبكة، ولكن تطوير روبي في تطبيقات الويب وأدوات ويب هي الأكثر شيوعا.

ليس فقط يمكنك استخدام روبي لكتابة الخادم الخاص بك SMTP، برنامج FTP أو ملقم ويب روبي، ولكن أيضا يمكن أن يكون استخدام البرمجة روبي CGI.

دعونا نتوقف لحظة لتعلم CGI روبي تحريرها.


تصفح الإنترنت

لفهم أفضل لكيفية يعمل CGI، يمكننا أن تنقر على وصلة على صفحة ويب أو URL من هذه العملية:

  • 1، استخدام المتصفح للوصول إلى URL والاتصال إلى ملقم HTTP على شبكة الإنترنت.
  • 2، يتلقى ملقم ويب سيتم تحليل رسالة طلب URL وتبدو الوصول إلى الملفات على الخادم إذا كان هناك، إذا كان هناك للعودة محتويات الملف، وإلا فإنها ترجع رسالة خطأ.
  • 3، يتلقى متصفح المعلومات من الخادم ويعرض الملف أو خطأ الرسائل الواردة.

ويمكن لبرامج CGI يكون السيناريو روبي، بيثون السيناريو، المخطوطة، شيل، C أو C ++ البرامج.


CGI الرسم البياني

cgiarch


تكوين خادم الويب والدعم

قبل إجراء البرمجة 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>')

يتم تنفيذ التعليمات البرمجية أعلاه كما يلي:

&lt;h1&gt;Zara Ali/A Sweet & Sour Girl&lt;/h1&gt;'

أساليب الفئة CGI يشيع استخدامها

هنا الطريقة كاملة في روبي الطبقة CGI

  • CGI روبي - طرق مكتبة CGI القياسية ذات الصلة

الكوكيز وجلسات