منتدى الحاسب والجوال العربي
منتدى الحاسب والجوال العربي
كلمة الإدارة  

اهلاً وسهلاً، بك يا " ‏زائر "

نعتزر عن المشكلات التي حدثت في الفترة الفائتة كنا نجري إعادة تكويد وإزالة الصور التالفة والأكواد الزائدة لتقديم أفضل تجربة تصفح لك

أهلا وسهلا بك زائرنا الكريم, أنت لم تقم بتسجيل الدخول بعد! يشرفنا أن تقوم بالدخول أو التسجيل إذا رغبت بالمشاركة في المنتدى

hozaifa01

ما هي الـ سي جي آي (CGI)؟

avatar

????

زائر
ما هي الـ سي جي آي (CGI)؟ Empty
السلام عليكم ورحمة الله وبركاته..







ما هي الـ سي جي آي (CGI)؟ Title_right ما هي الـ سي جي آي (CGI)؟ Spaceما هي الـ سي جي آي (CGI)؟ ما هي الـ سي جي آي (CGI)؟ Title_left





هي برامج تخدم صفحات الأنترنت و تربط بينها و بين البرمجيات التي لا تتفاهم بلغات الإنترنت.



مثلاً لدينا صفحة على الإنترنت. و صفحات الأنترنت ما تفهم غير ال html و أي شي
ثاني ممكن نضعة داخل ال html مثل ال JavaScript و DHTML وغيرها.



و لدينا قاعدة بيانات مكتوبة على ال Oracle، وال Oracle تفهم SQL.

المسألة أننا نريد أن ندخل البيانات عن طريق المتصفح بحيث تذهب أوتوماتيكياً
إلى قاعدة البيانات.

مشكلة في التفاهم. واحد يتكلّم html والثاني يتكلّم Sql كأنه واحد يتكلم صيني،
والثاني عربي.

هنا يأتي دور ال CGI و هي اختصار: Common Gateway Interface و هي بيئة في الوسط
و تعنى بالترجمة بين الطرفين أو بشكل أدق بالربط بين الطرفين.


يمكن كتابة ال CGI بعدة لغات مثل: Perl, JSP,PHP, ASP وغيرها الكثير. هذه اللغات تعتبر
مرنة و تستطيع أن تنتج صفحات الأنترنت و في نفس الوقت تستطيع أن تتعامل مع
البرامج المختلفة على الخادم الذي تكون محفوظة عليه. كما هو موضّح في الشكل:



ما هي الـ سي جي آي (CGI)؟ L01_p01








ما هي الـ سي جي آي (CGI)؟ Title_right ما هي الـ سي جي آي (CGI)؟ Spaceكيف نستخدم السي جي آي؟ ما هي الـ سي جي آي (CGI)؟ Title_left





كي نستخدم السي جي آي يلزم توفّر ثلاث أمور


  1. الخادم يجب أن يدعم مترجم للغة التي مكتوب بها السي جي لآي مثلا Perl Compiler
  2. ملف يحتوي السي جي آي سكربت و في حالتنا سيكون سمه مثلاً send.pl
  3. امكانية الدخول على الخادم لتعديل الترخيص.








ما هي الـ سي جي آي (CGI)؟ Title_right ما هي الـ سي جي آي (CGI)؟ Spaceمثال ما هي الـ سي جي آي (CGI)؟ Title_left



المشكلة



لنفرض أننا نريد تصميم صفحة فيها فورم، و نريد أن نرسل محتوى الفورم لشخص معيّن


التفكير في الحل


ما الذي نريده؟ نريد ارسال بيانات من فورم إلى بريد محدد.

نستطيع تصميم الصفحة والفورم، صح؟ هذه محلولة

لدينا البريد الذي نريد أن نرسل له، صح؟ هذه أيضاً محلولة

لكن، المشكلة تكمن في أن ال html لا تستطيع بأي حال من الأحوال أن ترسل بريد الكتروني بنفسها؟


لماذا؟ لأن ارسال البريد الإلكتروني يعني استخدام خاصية من خصائص الخادم و هي
ال sendmail و هذه الخاصية هي المسؤولة عن ارسال البريد الإلكتروني. و لكن
sendmail لا تتكلّم بلغة الhtml أيضاً. إذا نحتاج إلى رنامج cgi مكتوب بلغة أو
بأخرى يقوم بالربط بين الإثنين :-)




الحل



  1. نحدد مكان خدمة ال sendmail على الخادم. (في هذا المثال)>
  2. نكتب (أو نبحث عن سي جي آي مكتوب يقوم بقراءة البيانات من حقول الفورم و ربطهم بالsendmail و نضمّنه مكان هذه الخدمة.

    و لاحظ معي أننا يجب أن نعرف أي المترجم لهذا الملف أيضاً، و سأخبرك لماذا
    لاحقاً. و في هذا السكربت أيضاً سنضع بعض الأوامر التي ستنتج لنا صفحة html
    تخبر الستخدم أن رسالته قد أرسلت :-) و سنسمي هذا الملف: sendItNow.pl مثلاً.
  3. نصمم الصفحة و الفورم كاملة ( واستخدم مواهبك المتقجرة في التصميم :-))
    في أمر الفورم Form tag ستلاحظ أنه مكتوب هكذا:

    ما هي الـ سي جي آي (CGI)؟ L01_formExample




    هذه الفورم لا تعمل شيء! فقط تأخذ البيانات و لا تعرف ماذا تفعل بها.

    لذا سنستبدلها بما يلي:

    {form action=http://someserver.com/cgi-bin/sendItNow.pl}


    إضافة أمر ال action في ال form يجعلها تعرف ماذا ستفعل بالبيانات. فهي سترسلها إلى السكربت الذي وضعت عنوانه كاملاً، و الباقي عليه.

  4. نضع جميع هذه الملفات في أماكنها المناسبة. يعني نضع الصفحة في
    المكان الذي تريده. و تضع السي جي آي في هذا المكان:
    http://someserver.com/cgi-bin لأن صفحتنا ستبحث عنه في هذا المكان.
  5. نذهب إلى صفحتنا عبر المتصفّح :-)

مفاجــــــــــــــــــــــــــــأة. لن يعمل السكربت، و سيعطيك خطأ مفاده
Server Error لماذا؟ أه ها.. قلت لماذا. بسبب الترخيص! (و هو ما سأقوم
بشرحة في درس التراخيص)

لذا علينا قبل الخطوة (5) أن نضع الخطوة (4.5) و هي تغيير ترخيص ملف السيجي
آي عن طريق ال chmod إلى 755 . (انظر الملحق لهذا الموضوع في الأسفل)


مرّة ثانية الخطوة (5).. سيعمل تمام التمام ان شاء الله إذا كان مدير النظام يسمح لك باستخدام خاصية ال sendmail


أرجو أن أكون أفدت الجميع، وفي حال وجود أسئلة سأحاول أن أعمل جاهدة للإجابة عليها ان شاء الله :-)





وفوق كل ذي علم عليم





#1 - كتب 14/5/2012, 10:41

صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى

IP



جميع الحقوق محفوظة لـ © منتدى الحاسب والجوال العربي