S.FATEH
12-12-2009, 07:36 AM
بسم الله الرحمان الرحيم، الحمد لله و الصلاة و السلام على رسوله أما بعد...
لعل الغالب رأى إستعمالات الـ 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.delphi4arab.com/forum/showthread.php?t=539
موقع المكون : http://www.myfxboard.com/tiehttp/
للتحميل مباشرة من الموقع :
http://www.myfxboard.com/tiehttp/TIE_http_https_build_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/download.php?xampp-win32-1.7.2.exe
أولا هذا هو سكريبت الـ php قمت ببرمجته أضطررت الى تعلم بعض أساسيات الـ php ليس كامل لكنه يفي بالغرض :
<html>
<head>
<title>delphi4arab</title>
</head>
<body>
< ?php
$_var = $_POST["varf"] ; //1
$_hand= fopen("data.txt","a") ; //2
fwrite($_hand,$_var) ;//3
Fclose ($_hand) ; //4
?>
</body>
</html>
قم بنسخ كود الـ 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 .
يمكنك بهذه الطريقة من صناعة العديد من البرامج كبرنامج اضافة ردود الى المنتدات او مواضيع و غير ذلك الكثير..الشرح مختصر و أتمنى ان اكون قد افدتكم ...
لا تنسونا من صالح دعائكم ...
ان اصبت فمن الله و ان اخطأت فمن نفسي و الشيطان
سيتم تحويل الشرح الى pdf في القريب ان شاء الله ليكون أكثر وضوحا
:monster1:
سلامي
الى الامام
لعل الغالب رأى إستعمالات الـ 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.delphi4arab.com/forum/showthread.php?t=539
موقع المكون : http://www.myfxboard.com/tiehttp/
للتحميل مباشرة من الموقع :
http://www.myfxboard.com/tiehttp/TIE_http_https_build_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/download.php?xampp-win32-1.7.2.exe
أولا هذا هو سكريبت الـ php قمت ببرمجته أضطررت الى تعلم بعض أساسيات الـ php ليس كامل لكنه يفي بالغرض :
<html>
<head>
<title>delphi4arab</title>
</head>
<body>
< ?php
$_var = $_POST["varf"] ; //1
$_hand= fopen("data.txt","a") ; //2
fwrite($_hand,$_var) ;//3
Fclose ($_hand) ; //4
?>
</body>
</html>
قم بنسخ كود الـ 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 .
يمكنك بهذه الطريقة من صناعة العديد من البرامج كبرنامج اضافة ردود الى المنتدات او مواضيع و غير ذلك الكثير..الشرح مختصر و أتمنى ان اكون قد افدتكم ...
لا تنسونا من صالح دعائكم ...
ان اصبت فمن الله و ان اخطأت فمن نفسي و الشيطان
سيتم تحويل الشرح الى pdf في القريب ان شاء الله ليكون أكثر وضوحا
:monster1:
سلامي
الى الامام