المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : إنشاء الـ Captcha بأبسط الطرق !



walid
11-01-2013, بتوقيت غرينيتش 04:13 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط¥ظ†ط´ط§ط، ط§ظ„ظ€ Captcha ط¨ط£ط¨ط³ط· ط§ظ„ط·ط±ظ‚ ! (http://www.dzbatna.com/t2023041/)



السلام عليكم ورحمة الله وبركاتة

أولاً / أسأل الله أن تكونو جميعاً بـ خير .
ثانياً / هذا شرح طريقة خاص بـ معهد ديزاد باتنة
إن شاء الله بشرح طريقة لكم طريقة عمل كود code التحقق أو مايُدعى بالـ [Captcha] بكل بساطه إن شاء الله .

هُنالك ثلاثة أشياء يجب علينا عملها كي نُنشئ كود code التحقق الخاص بنا ! .



دالة Rand
دالة Substr
if , else
دوال التعامل مع الصور
الجلسات



الأن نبدأ على بركة الله الدرس مفصل .

اول شئ سنقوم بعمل ملف الـ Captcha و سنسمية بـ Captcha.php و الان سنبدأ بكتابة محتواه .
و سنكتب بداخله تلك الاكواد
رمز PHP:

<code style="white-space:nowrap"> <code> <?
session_start();
$rand_num = rand(1000000,9999999);
$rand_new = substr($rand_num,0,5);
$img = imagecreate(50, 20);
$img_color = imagecolorallocate($img, 255, 255, 255);
$textcolor = imagecolorallocate($img, 00, 000, 000);
imagestring($img, 10, 0, 0, $rand_new, $textcolor);
header("Content-type: image/jpeg");
imagejpeg($img);
$_SESSION&#91;'cap_sess'&#93; = $rand_new;
?> </code> </code>

الأن سنشرح طريقة الاكواد السابقة معاً http://www.dzbatna.com/images/smilies/cupidarrow.gif
اول شئ قمنا بإنشاء جلسه لنحفظ بها القيم

رمز PHP:

<code style="white-space:nowrap"> <code> session_start();
</code> </code>

بعد ذالك قمنا بإنشاء ارقام عشوائيه بين الـ 1000000 و 9999999 و قمنا بإستخدام الدالة substr و اسندنا إليها الرقم 5 لجلب خمس أرقام عشوائية فقط !

رمز PHP:

<code style="white-space:nowrap"> <code> $rand_num = rand(1000000,9999999);
$rand_new = substr($rand_num,0,5);
</code> </code>



بعد ذلك قمنا بإنشاء صورة و وضعنا لها الخلفيه اللون الأبيض

رمز PHP:

<code style="white-space:nowrap"> <code> $img = imagecreate(50, 20);
$img_color = imagecolorallocate($img, 255, 255, 255);
</code> </code>

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

رمز PHP:

<code style="white-space:nowrap"> <code> $textcolor = imagecolorallocate($img, 00, 000, 000);
</code> </code>


و بعد ذلك قُمنا بكتابة النص العشوائي على الصوره و إخراج الصوره .

رمز PHP:

<code style="white-space:nowrap"> <code> imagestring($img, 10, 0, 0, $rand_new, $textcolor);
header("Content-type: image/jpeg");
imagejpeg($img);
</code> </code>

أخر شئ فى هذا الملف بأننا قمنا بحفظ الجلسه بإسم cap_sess عن طريق السطر التالي

رمز PHP:

<code style="white-space:nowrap"> <code> $_SESSION&#91;'cap_sess'&#93; = $rand_new;
</code> </code>

الأن انتهينا من شرح طريقة ملف الـ Captcha.php سننتقل الان لملف الـ index.html




و ظيفة ملف index.html هو أننا سنقوم بإستعراض صورة التحقق + زر لإرسال كود code التحقق ، و هذا هو كود code الملف كاملاً .

رمز PHP:

<code style="white-space:nowrap"> <code> <form method="POST" action="Captcha_do.php">
<p align="center"><img src="Captcha.php" /> </p>
<p align="center"><input name="Cap" type="text" /></p>
<p align="center"><input type="submit" value="Send" name="A"></p>
</code> </code>

فى البداية قمنا بعمل أكشن يقوم بإرسال القيم إلى الملف Captcha_do.php ليتم التحقق من صحة كود code التحقق .

رمز PHP:

<code style="white-space:nowrap"> <code> <form method="POST" action="Captcha_do.php">
</code> </code>

و بعد ذلك قُمنا بعمل صورة و جعلنا قيمتها مسار الملف Captcah.php ليتم جعل محتوى الصوره كود code التحقق الخاص بنا .

رمز PHP:

<code style="white-space:nowrap"> <code> <p align="center"><img src="Captcha.php" /> </p>
</code> </code>

بعد ذلك قمنا بعمل حقل لكتابة كود code التحقق . و أعطيناه الإسم .Cap


رمز PHP:

<code style="white-space:nowrap"> <code> <p align="center"><input name="Cap" type="text" /></p>
</code> </code>

و أخر شئ فى هذا الملف هو زر إرسال القيم .

رمز PHP:

<code style="white-space:nowrap"> <code> <p align="center"><input type="submit" value="Send" name="A"></p>
</code> </code>

الأن إنتهينا من ملف الـ index.html و ملف الـ Captcha.php ، الأن سنبدأ شرح طريقة أخر ملف لدينا و هو ملف الـ Captcha_do.php ووظيفته التحقق من صحة كود code التحقق الذي تم إدخالة بواسطة المُستخدم .

سننشئ ملف Catpcha_do.php و نضع محتواه الأتي .

رمز PHP:

<code style="white-space:nowrap"> <code> <?
session_start();
if ($_POST&#91;'Cap'&#93; == "" ){
echo "<center>";
echo "لقد تركت حقل كود code التحقق فارغ ، يرجى التأكد منه .";
}
else {
if ($_POST&#91;'Cap'&#93; == $_SESSION&#91;'cap_sess'&#93;) {
echo "<center>";
echo "كود code التحقق الذي أدخلته صحيح ! . ";
}
else {
echo "<center>";
echo "عفواً ، كود code التحقق الذي تمت كتابته غير صحيح ، يُرجى المُحاولة مُجدداً ! .";
}
}
?> </code> </code>


الان سنشرح طريقة أكواد هذا الملف http://www.dzbatna.com/images/smilies/cupidarrow.gif

اول شئ قمنا بإنشاء جلسه لجلب القيم المحفوظه سابقاً .

رمز PHP:

<code style="white-space:nowrap"> <code> session_start();
</code> </code>

و بعد ذلك قمنا بعمل شرط بسيط لمعرفة هل تم ترك حقل كود code التحقق فارغ أم لا ، و إذا لم يكن فارغاً سيتم إكمال العمليه و الذهاب للخطوه التاليه .

رمز PHP:

<code style="white-space:nowrap"> <code> if ($_POST&#91;'Cap'&#93; == "" ){
echo "<center>";
echo "لقد تركت حقل كود code التحقق فارغ ، يرجى التأكد منه .";
}
else {
</code> </code>

و بعد ذلك لو لم يكن تم ترك حقل كود code التحقق فارغاً سيتم التحقق إذا كان قيمة حقل كود code التحقق = قيمة كود code التحقق الموجوده فى الصوره ، و سيتم طباعه جمله لمعرفة هل الكود code المُدخل صحيح أم لا .
رمز PHP:

<code style="white-space:nowrap"> <code> if ($_POST&#91;'Cap'&#93; == $_SESSION&#91;'cap_sess'&#93;) {
echo "<center>";
echo "كود code التحقق الذي أدخلته صحيح ! . ";
}
else {
echo "<center>";
echo "عفواً ، كود code التحقق الذي تمت كتابته غير صحيح ، يُرجى المُحاولة مُجدداً ! .";
}
}
</code> </code>

و بهذا نكون قد أنهينا شرح طريقةنا ، أتمنى من الله ان اكون قد وفقت فى طرحي و قد افدتكم . و إن شاء الله سيتم عمل درس مفصل قادم ايضاً سيكون للـ Captcha و لكن سيكون بشكل جديد إن شاء الله .

المثال مُرفق كل ما عليك هو إستعراضه و تجربته فقط ! .
الشرح طريقة خاص و حصري لـ ديزاد باتنة بواسطه : أحمد صلاح الدين .
دعواتكم http://www.dzbatna.com/images/smilies/cupidarrow.gif







ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)


الملفات المرفقة
http://www.traidnt.net/vb/images/attach/zip.gif Captcha By Ahmed Salah El-Din.zip (http://www.traidnt.net/vb/attachments/622669d1327018208-captcha-ahmed-salah-el-din.zip) (1.5 كيلوبايت, عدد مرات المشاهدة 104 مرة)


https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى