ط¥ظ†ط´ط§ط، ط§ظ„ظ€ Captcha ط¨ط£ط¨ط³ط· ط§ظ„ط·ط±ظ‚ !



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

أولاً / أسأل الله أن تكونو جميعاً بـ خير .
ثانياً / هذا شرح طريقة خاص بـ معهد ديزاد باتنة
إن شاء الله بشرح طريقة لكم طريقة عمل كود 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>

الأن سنشرح طريقة الاكواد السابقة معاً
اول شئ قمنا بإنشاء جلسه لنحفظ بها القيم

رمز 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>


الان سنشرح طريقة أكواد هذا الملف

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

رمز 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 و لكن سيكون بشكل جديد إن شاء الله .

المثال مُرفق كل ما عليك هو إستعراضه و تجربته فقط ! .
الشرح طريقة خاص و حصري لـ ديزاد باتنة بواسطه : أحمد صلاح الدين .
دعواتكم







الملفات المرفقة [TR]
Captcha By Ahmed Salah El-Din.zip (1.5 كيلوبايت, عدد مرات المشاهدة 104 مرة) [/TR]



©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©