الحزء الاول
بالتاكيد أن اغلبنا شاهد في موقع ياهو او هوتميل او أى موقع تجارى اثناء عملية التسجيل انك تمر بمرحلة الصورة العشوائية والتى تحتوى على ارقام وحروف يجب عليك ادخالها كما في الصورة حتى تتم عملية التسجيل .
اذا لم ترى ذلك من قبل او لم تفهم قصدي تفضل هنا .
بالتاكيد سالت نفسك كيف يتم تكوين هذه الصورة وهل هي صور متعددة موجودة اساسا بالموقع ؟
وكيف يتم تمييز الحروف التى تظهر على الصورة بينما تقوم انت بادخالها من لوحة المفاتيح ؟
الان سوف اقوم بشرح كيفية عمل ذلك بواسطة php ، ولكن لا تتعجل ، سوف اقوم بشرح الاكواد خطوة خطوة ثم وضع الكود كاملا ، وسوف اضع ملفاً مرفقاً يحتوى البرنامج كاملاً
، مع ملاحظة أننا سوف نستخدم الجلسات (session) في هذا السكربت البسيط .
في البداية سنقوم بعملية تكوين الصورة مع تحديد نوع الصورة
، ويكون ذلك كالتالي :
| Code .. |
|
اذا اردت استخدام الامتداد jpg فقط غير png في الكود بالاعلى الى jpg ، وهكذا مع بقية انواع الصور .
الان تريد ان تعرف كيف سنقوم بتكوين الصورة ! ولكن مهلا في البداية يجب وضع كود السيشن او الجلسة كما يلي :
| Code .. |
|
ما معنى هذا الكود ؟
فقط بدأنا دالة السيشن ، واضفنا متغير جديد بدون تحديد ..
الان نبدأ الكود الخاص بانشاء الصورة :
| Code .. |
|
الان وضعت المتغير im كرمز سوف اقوم باستخدامه للتعبير عن الصورة طوال الدرس ، وحددنا ابعاد الصورة باستخدام الدالة image create .
لكن هل هي صورة بلا الوان ! لا الان سوف نجعلها اكثر حيوية وحركة :
| Code .. |
|
استخدمنا اللونين white و black ، ويمكن تغيير الالوان بتغيير قيم الارقام في الكود .
حالياً لدينا صورة im تحتوى على لونين white و black وابعادها 200×40 ، دعونا ننتقل لمرحلة اخرى وهي عمل الكود العشوائي للارقام والحروف التي ستظهر على الصورة باستخدام نظام md5 للتشفير ولكن لن نتطرق لكيفية عمل نظام التشفير لانه خارج الموضوع ، ستجد شرح الدالة في قسم الدوال .
| Code .. |
|
الان تعالوا نعيد تنظيم الالوان والاكود داخل الصورة :
| Code .. |
|
قمنا بتلويين الصورة بالكامل باللون الاسود كلون خلفية للصورة .
الان اين سنكتب على الصورة ؟
هل نبدأ من المنتصف ام من اليسار ؟
ابعاد الصورة هي 200×40 ، اذاً احداثي الركن السفلي الايمن هو 200,40 ، لذلك علينا بتحديد المنتصف بشكل تقريبي ، النقطتين 80 و 10 مثلاً :
| Code .. |
|
اول متغير هو الصورة im ، الثاني هو حجم الخط يمكن استخدام اى رقم من 1 الى 5 ، 80 و 10 احداثي نقطة بداية الكتابه على الصورة ، الخامس هو الكود الذي قمنا بتشفيره وجلبة من دالة التشفير ، السادس هو لون خط الكتابه وهو هنا اللون الابيض .
الان انتهينا من كل معلومات الصورة التي نريد انشائها ، فقط يتبقى ان نعطيها اسم يمكن استخدامه في أي مكان في الصفحة مثلها مثل أي صورة عادية :
| Code .. |
|
اعطينا الصورة اسم verify.png ، فقط قمنا بتحويل كافة المعلومات التي قمنا بادخالها للمتغير im الى صورة وسميناها اسم جديد ، ثم استخدمنا دالة image destroy ، وهذه الخطوة فائدتها تحرير ذاكرة السرفر من البيانات المدخلة .
الان الكود النهائي بعد تجميع كل هذه الخطوات :
| Code .. |
|
الجزء الثاني
الان كيف استخدم هذا كله ؟
او كيف اضمنه ضمن برنامج او صفحة او سكربت ؟
حسناً ..
1-قم بعمل ملف جديد بي اتش بي .
2-ضع في الملف الكود السابق كاملاً .
3-ضع كود النموذج التالي اسفل الكود السابق في نفس الملف :
| Code .. |
|
الان نحتاج لملف اخر
وقد اسميناه في الكود بالاعلى formhandler.php
وضع الكود التالي في الملف الجديد
| Code .. |
|
انتهى بحمد الله ..
ملحوظة :
اذا ظهرت رساله خطأ :
| Code .. |
can`t open verify.png for writing
|
قم برفع اي صورة لديك في نفس مجلد السكربت واعد تسميتها الى نفس الاسم واجعل تصريحها 777