как получить капчу на php или javascript с http://msk.sendsms.megafon.ru/ например как сделали http://smste.ru/ ?

как получить капчу на php или javascript с http://msk.sendsms.megafon.ru/ например как сделали http://smste.ru/ ?  

5 thoughts on “как получить капчу на php или javascript с http://msk.sendsms.megafon.ru/ например как сделали http://smste.ru/ ?

  1. Боюсь тут дело не обойдётся одним получением капчи.

    Надо сделать запрос на сайт мегафона для получения кук. Потом, как мне кажется, нужно отправить запрос на http://msk.sendsms.megafon.ru/image.phtml, серверный скрипт должен обновить переменную сессии, id которой вы должны получить с первого запроса. А далее передать пользователю картинку и куки. Потом пусть пользователь отправит форму вашему скрипту, а ваш скрипт сформирует запрос на мегафон. Т.е. задачу можно решить на чистом PHP.

    Мне кажется что иначе, чем, я описал решить задачу не получится…

    Вот несколько ссылок по этому поводу:
    http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=9050

    http://snippets.pp.ru/article/42/  

  2. Забавно… Я думаю проблема появилась с их привязкой кода капчи к сессии…  

  3. Я признаться не заметил hidden) Если честно, у вас большой траффик ожидается?)  

  4. Для выполнения скрипта после сабмита можно при выполнении сабмита отправить дополнительный запрос на ваш серверный скрипт, который установит флаг для выполнения после сабмита… Например впихнёт в форму хидден. А в js проверить это скрытое поле…

    Как всё сделаете, скинете ссыль на ваш ресурс. Просто интересно?)  

  5. Воробушек

    Почему именно такую вам? Можно сделать лучше, можно хуже, просто нужно отталкиваться от рекомендаций и здравого смысла. Рекомендации(для текстовых):
    1) фон капчи лучше делать в качестве фрактала
    2) содержание капчи (текст) лучше делать различными цветами и не ровной формы
    3) различное положение букв(цифр) относительно друг друга и краёв изображения
    Один из отличных, на мой взгляд, примеров капчи, это картинка из тестов на дальтонизм))…

    На форме сделать, что-то вроде:
    <img src=”captcha.php” id=capcha name=”code”>
    <input type=”button” onclick:”document.getElementById(‘capcha’).src=’captcha.php?’+Math.random()”>

    В скрипте обработки формы нужно сделать проверку:
    if ($_GET[‘code’]== $_SESSION[‘secret’]){ //пользователь ввёл буквы с картинки
    А сам скрипт капчи должен выглядеть примерно так(не лучший вариант, но достаточно неплохой):
    <?php
    session_start();
    $chars=”abdefhiknrstyz”;
    $string=””;
    $len=strlen($chars);
    for($i=0; $i<4; $i++){
        $string[$i]=$chars[rand(0, $len-1)];
    }
    $_SESSION[‘secret’]=$string;
     
    $im=imagecreate(100, 50); //imagettftext();
    imagecolorallocate($im,255,255,255);
    //заполняем фон циферками…
    for ($x=0; $x<100; $x+=4){//тут мы шпигуем мелкими циферками нашу будущую капчу
       for ($y=0; $y<50; $y+=4){
           $color=imagecolorresolve($im, rand(50,255), rand(50, 255), rand(50,255));
           imagettftext($im, 4, rand(-30,30),
           $x, $y, $color,”C:/Windows/Fonts/verdana.ttf”,rand(0,9));
       }
    }//рисуем secret_code
    $x=0;
    for ($i=0; $i<4; $i++){
       $color=imagecolorresolve($im, rand(0,255), rand(0, 255), rand(0,255));
       imagettftext($im, 20, rand(-30,30),
       $x+=10, rand(22,35), $color,
       “C:/Windows/Fonts/verdana.ttf”,$string[$i]);
    }
    header(“Cache-Control: no-store, no-cache, must-revalidate”);
    header (“Content-type: image/png”);
    imagepng($im);
    imagedestroy($im);
    ?>

Comments are closed.