منتديات المجاوشي

منتديات المجاوشي (http://www.vb.mjawshy.net/index.php)
-   Arabic Rss (http://www.vb.mjawshy.net/forumdisplay.php?f=41)
-   -   [ درس ] برمجة كابتشا تعمل بالصور (http://www.vb.mjawshy.net/showthread.php?t=413212)

RSS 03-15-2014 07:24 AM

[ درس ] برمجة كابتشا تعمل بالصور
 
<div><div align="center">درس بسيط عن كيفية برمجة كابتشا تعتمد على التعرف على شكل ما

مثال:

http://www.traidnt.net/vb/images/img...14/03/1577.png

ما فائدة الكابتشا؟
تمنع السبام و البوت من التسجيل على موقعك او اضافة محتوى الخ..


لماذا كابتشا تعتمد على صور و ليس التعرف على نص؟
ببساطة الكابتشا التي تعتمد على التعرف على نص ممكن يتجاوزها البوت بسهول بأستخدام تقنية اسمها OCR او Optical Character Recognition التي تستطيع التعرف على اي نص داخل صورة و لهذا السبب يفضل ان لا تستخدم كابتشا تعتمد على التعرف على نص

المتطلبات:
تجميعة بسيطة لأشكال ليتعرف عليها الزائر.. مثلاً 5 صور لـ قطط او 5 صور لـ سيارة او 5 صور لـ كومبيوتر الخ

الكود:
اولاً.. نبني المتغيرات التي ممكن للذي يحب ستخدم الكابتشا ان يغيرها
رمز PHP:
// User must set these
$objects = array("bed", "bird", "book", "cable", "car", "chair", "computer", "currency", "dog", "flowers");
$offset = array("min" => 1, "max" => 5);
$num_solutions = 3;
$num_options = 3;


المتغير $objects هو مصفوفة تضع فيها كل الاشكال
المتغير $offset هو مصفوفه فيها عدد الصور لكل شكل
مثلاً لو عندي 5 صور مرقمة على شكل cat-1 cat-2 cat-3 cat-4 cat-4 اضع min واحد و max خمسة
المتغير $num_solutions تضع فيه عدد الاشكال التي تريد ان يتعرف عليها الزائر
المتغير $num_options هو عدد الخيارات لكل شكل

ثانياً.. نبدأ الجلسة و نفتح مصوفتين فارغات
رمز PHP:
// Do not mess with these
session_start();
$captchas = array();
$_SESSION['captcha_solutions'] = array();


ثالثاً.. نختار الاشكال للتعرف عليها من مصفوفة الاشكال على العدد الذي اختاره مستخدم السكريبت
<div style="margin:20px; margin-top:5px"> رمز PHP:
<div class="alt2"> <div dir="ltr" style="text-align:left;"> <span style="color: #000000">// Shuffle the array and pick $num_solutions objects
shuffle($objects);
for(
$i = 0; $i <span style="color: #007700"><span style="color: #000000">// Display the pictures of the captcha
foreach($captchas as $captcha) {

// Build a temp array of objects
$temp = $objects;
$key = array_search($captcha, $objects);
unset(
$temp[$key]);
shuffle($temp);

// Build a list of options
$options = array();
for(
$i = 0; $i <span style="color: #007700"><span style="color: #000000"> session_start();

$answers_user = $_POST['captcha'];
$answers_correct = $_SESSION['captcha_solutions'];
$num_correct = count($answers_correct);
$correct = 0;

for(
$i = 0; $i <span style="color: #007700">


الساعة الآن 05:48 AM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. منتديات بلاك بيري mjawshy.net
المجاوشي للتقنية المتقدمة