صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: استخدام الـ Captcha في الـ PHP

  1. #1

    استخدام الـ Captcha في الـ PHP



    بسم الله الرحمن الرحيم ،،
    السلام عليكم ورحمة الله وبركاته ,,
    اللهم علمنا بمانفعتنا وانفعنا بماعلمتنا وزدنا علما ياقدير ..

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

    ماهي ال Captcha ؟
    لعلك حينما تبحث في جوجل سيظهر لك أول واحد هذا الرابط
    http://en.wikipedia.org/wiki/Captcha ..
    وفيه نبذه عنها وهي بشكل مختصر صوره يتم كتابتها ديناميكيا بواسطة أحد لغات السيرفر
    الهدف منها تقليص المدخلات المزعجة والتي تهدف العبث بموقعك ..

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

    المهم ندخل في الموضوع وخطوات الدرس بإذن الله :

    اولا افتح الفوتوشوب وصمم لك صوره بمقاس 87 * 18 ويكون تصميم نوعا ما هادئ ..
    مثال :

    واحفظها بصيغة png باسم captcha


    ثانياً أنشى ملف بإسم captcha.php
    وهذا محتواه :
    كود PHP:
    <?php
    //Start the session so we can store what the code actually is.
    session_start();

    //Now lets use md5 to generate a totally random string
    $md5 md5(microtime() * mktime());

    /*
    We dont need a 32 character long string so we trim it down to 5
    */
    $string substr($md5,0,5);

    /*
    Now for the GD stuff, for ease of use lets create
     the image from a background image.
    */

    $captcha imagecreatefrompng("./captcha.png");


    /*
     Hxdec_arr : Transform hexcolor to 255 format.
     @color : color format without '#' . 
     @return Array  
    */
    function Hxdec_arr($color){
    $int hexdec($color);
    $arr = array("red" => 0xFF & ($int >> 0x10),
                 
    "green" => 0xFF & ($int >> 0x8),
                 
    "blue" => 0xFF $int);
    return 
    $arr;
    }


    /*
    Lets set the colours, the colour $line is used to generate lines.
     Using a blue misty colours. The colour codes are in RGB
    */



    $black imagecolorallocate($captcha000);

    $c1 Hxdec_arr('DAEDF6');
    $c2 Hxdec_arr('9CB7C4');

    $line imagecolorallocate($captcha,$c1["red"],$c1["green"],$c1["blue"]);
    $line2 imagecolorallocate($captcha,$c2["red"],$c2["green"],$c2["blue"]);

    /*
    Now to make it a little bit harder for any bots to break, 
    assuming they can break it so far. Lets add some lines
    in (static lines) to attempt to make the bots life a little harder
    */
    imageline($captcha,0,0,39,29,$line);
    imageline($captcha,-100,57,34,8,$line2);
    imageline($captcha,0,0,39,29,$line);
    imageline($captcha,40,0,64,29,$line2);

    /*
    Now for the all important writing of the randomly generated string to the image.
    */
    imagestring($captcha,5201$string$black);


    /*
    Encrypt and store the key inside of a session
    */

    $_SESSION['key'] = md5($string);

    /*
    Output the image
    */
    header("Content-type: image/png");
    imagepng($captcha);


    ?>

    وملفك اللي فيه الفورم أضف عليه الصوره وحقل باسم code :
    كود HTML:
    <input name="code" type="text" /><img src="captcha.php" alt="فضلا انقل الموجود بالصوره"  />
    أخيرا ملفك اللي موجه له الفورم :

    تستعمل فيه التشييك التالي :

    كود PHP:
    if(md5($_POST['code']) != $_SESSION['key'])
      die(
    "عفوا كود خاطئ!");
    else
      echo 
    'لقد أدخلت الكود بشكل صحيحّ!'
    ولا تنسى يكون في بدايه ملفاتك تضع بداية للسسيشن اذا كان عندك ملف header.php او global تضع في اوله
    كود PHP:
    session_start(); 
    ملف للتجريب للي مافهم : test.php :
    كود PHP:
    <?
    session_start
    ();
    if (
    $_GET['a'] =='check' && $_POST){

        
        if(
    md5($_POST['code']) != $_SESSION['key'])
          die(
    "عفوا كود خاطئ!");
        else
          echo 
    'لقد أدخلت الكود بشكل صحيحّ!';
    }
    ?>


    <form action="?a=check" method="post">
    <input name="code" type="text" /><img src="captcha.php"  /><br />
    <input type="submit" name="submit" value="Submit"  /> 
    </form>
    مثال :
    http://www.artsisland.net/flasher/up...ptcha/test.php

    لي عودة بإذن الله لمن لديه استفسار ..

    روابط ذو صله :
    http://codewalkers.com/tutorials/95
    http://www.planet-source-code.com/vb...d=739&lngWId=8

    ولانسونا من صالح دعائكم ،
    المشرف التقني على موقع رياض القرآن.





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT
    رياض القرآن غير متواجد حالياً


  2. #2


    أيضا بإمكانك تعديل الجملة المطلوبه بتعديل المتغير string .. فلو مثلا نبغاه يطلعلنا ارقام فقط
    نجعله :
    كود PHP:
    $string rand(11111,99999); 
    مشكورين على المتابعة ،،





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT
    رياض القرآن غير متواجد حالياً

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    863


    جزاك الله كل خير على المعلومات المفيده
    وجاري التطبيق





    __________________
    مــــوف نــــت
    MSN: mofnet@hotmail.com
    MOF NET غير متواجد حالياً

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Dec 2000
    المشاركات
    291


    درس جميل أخى العزيز .. بارك الله فيك :app:

    و لكنى اعتقد أنه فى قسم الـ php سيلقى صدا أوسع

    و لا تحرمنا جديدك





    Colombo غير متواجد حالياً

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    335


    الف شكر لك

    وطريقة رائعة حقا





    __________________
    شبكة البيت للتصميمات وبرمجة الاسكربتات الخاصة
    http://www.Elbayt.NeT
    الزواج - العقارات -الاخبار- مجلات خاصة - نيوك - منتديات - قروبات - مستعمل - الجوال - الوظائف - واى من الاسكربتات الخاصة
    elbayt.net غير متواجد حالياً

  6. #6


    جزاك الله كل خير على المعلومات المفيده
    وجاري التطبيق
    وياك أخي شرفني مرورك ..

    رس جميل أخى العزيز .. بارك الله فيك

    و لكنى اعتقد أنه فى قسم الـ php سيلقى صدا أوسع

    و لا تحرمنا جديدك
    تسلم والله .. نعم لم انتبه للقسم المعذرة توي مسجل لاتشره
    وابشر باللي يسرك ان شاء الله .

    الف شكر لك

    وطريقة رائعة حقا
    العفو يالغالي ..





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT
    رياض القرآن غير متواجد حالياً

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    275


    أستفسار
    هل هناك خطر لو أجعل المتداد ( .jpg )



    وشكرا





    __________________
    سبحان الله وبحمده & سبحان الله العضيم
    ATmax غير متواجد حالياً

  8. #8
    عضو نشيط
    تاريخ التسجيل
    May 2005
    المشاركات
    179


    ألف شكر أخوي رياض القرآن وجزاك الله كل خير

    ولقد إستفدت من الدرس في برنامج اتصل بنا المتقدم

    http://www.ac4p.com/test/my/

    ولك كل التقدير





    ac4p.com غير متواجد حالياً

  9. #9


    اقتباس المشاركة الأصلية كتبت بواسطة ATmax
    أستفسار
    هل هناك خطر لو أجعل المتداد ( .jpg )



    وشكرا
    هلا بك اخوي ..

    لا يوجد خطر ولا شئ

    لكن اذا حبيت تستعمل هالامتداد يلزمك بعض التعديلات في الكود

    كود PHP:
    $captcha imagecreatefrompng("./captcha.png"); 
    تصبح
    كود PHP:
    $captcha imagecreatefromjpeg("./captcha.jpg"); 
    كود PHP:
    header("Content-type: image/png"); 
    imagepng($captcha); 
    تصبح
    كود PHP:
    header("Content-type: image/jpeg"); 
    imagejpeg($captcha); 
    اقتباس المشاركة الأصلية كتبت بواسطة ac4p.com
    ألف شكر أخوي رياض القرآن وجزاك الله كل خير

    ولقد إستفدت من الدرس في برنامج اتصل بنا المتقدم

    http://www.ac4p.com/test/my/

    ولك كل التقدير
    الله يخليك يالغالي ..
    شرفني مرورك الكريم.





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT
    رياض القرآن غير متواجد حالياً

  10. #10
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    65


    ما شاء الله جزاك الله خير الجزاء وأخيراً سوف نتخلص من السبام إن شاء الله .


    تحياتي إليك عزيزي وفي إنتظار إبداعاتك .





    أبو روان غير متواجد حالياً

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    290


    شكراً لك ,, درس رائع





    __________________
    ∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂
    http://www.m6nu5.com
    M6NU5 غير متواجد حالياً

  12. #12


    اقتباس المشاركة الأصلية كتبت بواسطة أبو روان
    ما شاء الله جزاك الله خير الجزاء وأخيراً سوف نتخلص من السبام إن شاء الله .


    تحياتي إليك عزيزي وفي إنتظار إبداعاتك .
    شرفني مرورك الكريم ،،


    اقتباس المشاركة الأصلية كتبت بواسطة M6NU5
    شكراً لك ,, درس رائع
    العفو يالغالي ،،





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT
    رياض القرآن غير متواجد حالياً

  13. #13
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    972


    الاخ رياض

    شكر على السكربت الجميل جدا :1power:

    عندي مشكلة وهي عند تعديل السكربت كالاتي

    كود PHP:

     session_start
    ();
      
    $cat=   $_GET['cat']; 
      echo 
    $cat ;
    if (
    $_GET['a'] =='check' && $_POST){

        if(
    md5($_POST['code']) != $_SESSION['key'])
       
          die(
    "عفوا كود خاطئ!");
        else
        
        {
     
    echo 
    $cat

    يظهر المتغير $cat في الاول صحيح
    والثاني فارغ هل من حل لاظهار بشكل صحيح ايضا :looking:
    وشكر لك





    download غير متواجد حالياً

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    927


    بارك الله فيك





    __________________
    الزواج : سعــادة

    العزوبية : حرية

    التعدد : حرّية السعداء ..!
    بدر 821 غير متواجد حالياً

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


    يعطيك العافي اخي مشرف رياض القرآن

    بالنسبة للكود يحتاج الغاء الشرط الثاني حتى ينفذ نموذجك بقية مهام الفورم

    بعد التعديل

    كود PHP:
    if(md5($_POST['code']) != $_SESSION['key']) 
      die(
    "عفوا كود خاطئ!"); 
    موسوعة الفتاوى الإسلامية





    hsn67 غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض