لعل الغالب رأى إستعمالات الـ http لتحميل الملفات من المواقع و في مشروعنا
البسيط هذا سنسرد إستعمال آخر للـ http حيث سنرسل الى موقع معلومات نخزنها
و سنقرأ تلك المعلومات كذلك من برنامج ننشئه بالدلفي بوساطة من الـphp و
باستخدام بروتوكول الـ http.
بعض المعلومات حول بروتوكول الـ http :يعتمد بروتوكول الـ http على طريقة الطلب و الرد
http request و
http response فمثلا أنت تطلب google بهذه الطريقة http://www.google.com
ليتولى بروتوكول الـ http إجابة طلبك بصفحة google الجميلة على متصفحك
حسنا قم الآن بإنجاز بحث ب google عن delphi4arab و لاحظ العنوان :
http://www.google.fr/search?hl=fr&source=hp&q=
delphi4arab&meta=&aq=f&oq=
لقد تم إضافة جملة بحثك الى العنوان انها طريقة لنقل بياناتك المتمثلة في
جملة البحث الى صفحة اخرى و هي صفحة النتائج نفس الشيئ في بعض المواقع يتم
إضافة باسورد دخولك الى العنوان و هكذا يتم تناقل المعلومات بين صفحات
الانترنت سيتضح لك الأمر لاحقا ان شاء لله تابع يوجد طريقتين شائعتين لنقل
البيانات و هما الطريقة GET و الطريقة POST .
الطريقة GET :تقوم باضافة البيانات الى الرابط url .
الطريقة POST : تقوم باضافة البيانات الى جسم الطلب بحيث تكون غير مرئية.
مشروعنا البسيط هو :
سنقوم بارسال نص الى صفحة سكريبت
php بسيط حيث سيقوم أو ستقوم صفحة الـ
php باستقبال النص و كتابته في ملف
txt و ليكن
data.txt موجود على نفس الموقع كل هذا سنستخدم فيه مكون مجاني
TIEHTTP من وضع الأخ
B.M.AbdelAziZ فشكرا له.
موقع المكون : http://www.myfxboard.com/tiehttp/
للتحميل مباشرة من الموقع :
http://www.myfxboard.com/tiehttp/TIE..._071_D2007.rar
طريقة التنصيب ( أنا نصبته بهذه الطريقة) :
بعد فك الضغط ادخل الى الملف gunzip ثم source أنسخ ما بداخل الملف الى
الملف bin الموجود على المسار C:\Program Files\Borland\Delphi7\Bin بعدها
افتح دلفي اغلق المشروع الذي يفتح مع الدلفي أختر ovrire ثم افتح
TIE_http_https.dpk ثم اضغط على compile في حالة عدم وجود أخطاء اضغط على
Installer اغلق دلفي مع الحفظ اعد فتحه ستجد مكون جديد اضيف الى لوحة
internet .
بالنسبة لهذا العمل يمكن إنجازه بطريقتين :
الأولى : أن تشترك في إستضافة مجانية ثم تقوم برفع صفحة الـ php و الملف data.txt الى إستضافة الموقع و القيام بالعمل.
الثانية : هي إستخدام برنامج
xampp و هو برنامج يتيح لك العمل على جهازك و كأنك في إستضافة حيث لديك مترجم
php و قاعدة بيانات
MySql و ما إلى ذلك... البرنامج سهل نصب شغل و انتهى شخصيا سأعمل بهذه الطريقة لنبدأ.
رابط موقع البرنامج http://www.apachefriends.org/fr/xampp.html
التحميل : http://www.apachefriends.org/downloa...in32-1.7.2.exe
أولا هذا هو سكريبت الـ php قمت ببرمجته أضطررت الى تعلم بعض أساسيات الـ php ليس كامل لكنه يفي بالغرض :
- الكود:
-
delphi4arab
< ?php
$_var = $_POST["varf"] ; //1
$_hand= fopen("data.txt","a") ; //2
fwrite($_hand,$_var) ;//3
Fclose ($_hand) ; //4
?>
قم بنسخ كود الـ php الى ملف txt و سمه test.txt ثم غير صيغته من .txt الى .php و انسخه الى المجلد htdocs الموجود مع ملفات برنامج
xampp ، المجلد
htdocs يمثل مكان وضع ملفات موقعك..لا تنسى تشغيل apache من
XAMPP Control Panel ...
شرح الأكواد :
1// : شرحه لاحقا.
2// : الحصول على مقبض الملف و فتحه للكتابة و القراءة في حالتنا ملفنا هو data.txt.
3// الكتابة في الملف البرمتر الاول مقبض الملف و الثاني ماذا نكتب في الملف الأكواد الباقية أكواد html .
بالدلفي أنشئ فورم به زر و مكون Edit بالإضافة الى مكون IEHTTP سمي هذا الأخير http ، في حدث الضغط على الزر :
- الكود:
-
http.RequestMethod := 'POST';//1
http.postStr:=('varf=' + Edit1.Text);//2
http.ExecuteURL('http://127.0.0.1/test.php');//3
1 //: قمنا بتعريف طريقة
POST لتنفيد الـ request اذا لم يتم تعريف طريقة POST فالمكون يعتبر الطريقة GET كطريقة افتراضية كما قلنا سابقا الطريقة
POST تضيف البيانات الى جسم الطلب لذلك لن نشاهد البيانات المرسلة.
2 // :
poststr هي
poststring و هو ماذا سنرسل بالـ
http ،
varfهو اسم المتغير edit.txt هو النص الذي سيحويه المتغير.
ارجع الى كود الـ php لاحظ $_var = $_POST["varf"] $_var هو اسم
المتغير الذي سنحفض فيه محتوى المتغير varf الذي سنرسله من برنامجنا دلفي
في الـ php تعريف المتغيرات سهل و هو باضافة العلامة $ و حسب و لست بحاجة
الى تعريف نوع المتغير و لا هم يحزنون php ينوب عنك في ذلك...$_POST هذه
طريقة لاستخراج محتوى المتغير varf اذا استخدمنا GET في الدلفي ففـ php
يكون لدينا $_GET ...
3// رابط عنوان صفحة الـ
php بما اننا على جهازنا فنستخدم
127.0.0.1 او
localhost ...
جرب البرنامج ف edit اكتب
delphi مثلا ثم ارسل
بالضغط على الزر.. صفحة الـ php تستخرج النص من المتغير تحصل على مقبض
الملف الذي تريد كتابته تفتح الملف تكتب فيه النص و تغلق الملف...
الآن اذهب الى
data.txt و هنا ستلاحظ انه قد تم اضافة النص delphi الآن الذي نريده هو ان نقوم بقراءة النص من برنامج آخر عن طريق استخدام ال
http أنشء نفس الفورم السابق في مكان الـ Edit ضع Memo
- الكود:
-
http.ExecuteURL('http://127.0.0.1/data.txt');
Memo1.Lines.Add(http.sl.Text);
اولا قمنا بطلب صفحة
127.0.0.1/data.txt اذهب
الى متصفحك و ضع رابط الصفحة فوق ستلاحظ انه تم عرض النص في المتصفح في
البرنامج كأننا قمنا بهذه العملية الا اننا سنسنقبل النتيجة في مكون
Memo .
يمكنك بهذه الطريقة من صناعة العديد من البرامج كبرنامج اضافة ردود الى
المنتدات او مواضيع و غير ذلك الكثير..الشرح مختصر و أتمنى ان اكون قد
افدتكم ...
لا تنسونا من صالح دعائكم ...
ان اصبت فمن الله و ان اخطأت فمن نفسي و الشيطان
توصيات :
اذا لم يعمل بشكل سليم حيث انه بعد تحميل المرفقات الى الدلفى و استكمال الاكواد حدث ان عرض رسالة خطاء خاصه ب iiehttp3 و لكن عند اضافة المرفقات مع مجلد البرنامج اشتغل بصورة ممتازة
..... ديلفي العرب
للمزيد من الشروحات حول هذا المكون
http://www.delphi4arab.com/forum/showthread.php?t=539
الرابط الاصلي للموضوع : http://www.delphi4arab.com/forum/showthread.php?t=2141