![]() |
|
مثال عن برمجة الـ http بالدلفي. - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6) +--- قسم : دلفي والتعامل مع الشبكات و الانترنت (https://delphi4arab.net/forum/forumdisplay.php?fid=21) +--- الموضوع : مثال عن برمجة الـ http بالدلفي. (/showthread.php?tid=1390) |
مثال عن برمجة الـ http بالدلفي. - S.FATEH - 12-12-2009 بسم الله الرحمان الرحيم، الحمد لله و الصلاة و السلام على رسوله أما بعد...
لعل الغالب رأى إستعمالات الـ 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.net/forum/showthread.php?tid=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');//31 //: قمنا بتعريف طريقة 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 بالدلفي. - محمد عبد العزيز - 12-12-2009 خطأ بسيط، لايوجد فراغ PHP كود : < ?php PHP كود : <?php أما هذا PHP كود : $_var = $_POST["varf"] ; //1كبديل لXAMPP يمكن استخدام WAMP http://www.wampserver.com/ ملاحظة: اعطاء الصلاحية للكتابة بملف بالموقع قد يكون سبب لاختراق الموقع عامة بالواقع العملي استخدام قاعدة بيانات اظمن من ملف غير ذلك مثال بسيط وجيد سهل للهظم خاصة للمبتدئين والسلام عليكم ورحمة الله مثال عن برمجة الـ http بالدلفي. - I_Tiger - 12-12-2009 للافادة: WAMP = windows apache mysql php وهناك أيضا MAMP = macintosh apache mysql php LAMP = linux apache mysql php مثال عن برمجة الـ http بالدلفي. - S.FATEH - 12-12-2009 السلام عليكم شكرا للتوضيح و الافادة اخ B.M.AbdelAziZ كما قلت سيتم اعادة تنضيم على شكل pdf احسن و سأحاول تجنب مثل هذه الأخطاء قدر المستطاع لقد تعلمت بعض من أساسيات الـ php لذلك الوقوع في مثل هذا الخطأ وراد ان شاء الله اتطور في الـ php كذلك بمناسبة ذكرك لقواعد البيانات اذا استعملت قاعدة بينات mysql هل يعني سأستخدم الـ http لتنفيذ العمليات عليها ام انه ما يسمى بربط قاعدة البينات يفي بالغرض I_Tiger شكرا للافادة سلامي مثال عن برمجة الـ http بالدلفي. - محمد عبد العزيز - 12-12-2009 إقتباس :اذا استعملت قاعدة بينات mysql هل يعني سأستخدم الـ http لتنفيذ العمليات عليها ام... هناك 3 طرق - الاتصال بالقاعدة مباشرة من دلفي -الاتصال بالقاعدة مباشرة بphp ( تطبيقات ويب Web فقط دون دلفي - مثل منتدانا هذا Vbulletin) -الاتصال بالقاعدة بدلفي باستخدام php بما يسمى HTTP Tunneling الطريقة الثالثة مفيدة في حالات كثيرة لا ينفع فيها الاتصال المباشر لاسباب او اخرى خير مثال عليها برنامج SQLyog مثال عن برمجة الـ http بالدلفي. - S.FATEH - 12-12-2009 الثانية واضحة لا غبار عليها يعني يبقى الاولى و الثالثة الاولى : تقصد الاتصال بها عن طريق مكونات DAC مثل scibit اذا هذه الطريقة تمكنني من اضافة و حذف في قواعد البينات كما أشاء... الثانية : و هي بنفس الطريقة التي اعتمدتها... اشارة للتأكيد شكرا للتوضيحات مثال عن برمجة الـ http بالدلفي. - محمد عبد العزيز - 12-12-2009 نعم، فقط في الاتصال المباشر هناك نقطتين 1- من جهة الServer يكون IP المتصل بالقاعدة له الصلاحية (يغير هذا بالServer باضافة IP المتصل) 2-من جهة المتصل المنفذ Port المستخدم (3306) غير محظور (لايمنعه الجدار الناري Firewall ان وجد) مثال عن برمجة الـ http بالدلفي. - S.FATEH - 14-12-2009 السلام عليكم و الله يا خبيرنا انت كل رد تضيف معلومة و بالتالي سآل : 1- بالنسبة للنقطة واحد ماذا لو كان الاي بي متغير يعني عدة أشخاص يتصلون بالقاعدة...في نفس الوقت... 2- هل يمكنني استخدام البورت لاغراض أخرى لانه حتى التفكير في مشكلة البورت تأرقتني ... سلامي مثال عن برمجة الـ http بالدلفي. - S.FATEH - 19-12-2009 نعم شكرا اخي للتنويه المزيد حول HTTP Tunneling ... وضح نقطة يتم حولها النقاش حتى تكون هناك أكبر إستفادة ان شاء الله سلامي الى الامام مثال عن برمجة الـ http بالدلفي. - Benhlell - 25-12-2009 هل يتم تغير مكان الايب الافتراضي 127.0.0.1 باسم الموقع ام ماذا او الايبي الخاص بالموقع |