curl и капча

Тема в разделе "PHP", создана пользователем Diverse, 16 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Diverse

    Diverse

    Регистр.:
    4 дек 2008
    Сообщения:
    232
    Симпатии:
    36
    Поделитесь опытом как при появлении страници с капчей остановить работу скрипта, показать капчу в браузере, а потом продолжить с тогоже места...

    страницу с капчей определить могу
    капчу вывести в браузер могу
    а вот как приостановить работу скрипта, дождаться ввода капчи и продолжить?

    хотябы в двух словах как такое организуется
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
  3. baddan

    baddan

    Регистр.:
    14 мар 2008
    Сообщения:
    354
    Симпатии:
    42
    PHP:
    if(!$_POST['captcha']){
     
    GetCaptcha();
     echo 
    "<img src='captcha.jpg'><form action='' method='POST'><input name='captcha'><submit></form>";
     die;
    }
    ..
     
    $captcha=$_POST['captcha'];
     
    обработка капчи
     
  4. lungsmoney

    lungsmoney Постоялец

    Регистр.:
    25 апр 2008
    Сообщения:
    81
    Симпатии:
    23
    Можно уточнить?
    форма куда, в начало файла(action='') отсылает?
    Как избавится - от бега по кругу?
    У меня уже башню сносит.
    Все поля для отправки собираю. Капчу вывожу-ввожу.
    Но скрипт не производит обработку значений а запускается изначально.
    ПС. скрипт авторизации
     
  5. Holy Diver

    Holy Diver Создатель

    Регистр.:
    17 авг 2009
    Сообщения:
    22
    Симпатии:
    8
    Я делал так:

    PHP:
    if(preg_match($captcha_pattern$html_content$matches)) {
    echo 
    '<img src="'.$matches[1].'" />';

    do {
    $captcha_val file_get_contents('captcha.txt');
    sleep(2);
    } while(
    strlen($captcha_val == 0));

    // очистка файла с разгаданной капчей
    // код отсыла капчи
    }
    Смысл таков: если на странице встречается капча - вывести её на экран, а потом каждые 2 секунды читать текстовый файл captcha.txt, до тех пор, пока в нём не появится содержимое. При появлении содержимого нужно очистить этот файл и передать разгаданную капчу дальше.

    А вот как уже заносить значение в файл captcha.txt - дело каждого, хоть вручную редактировать, хоть дописать удобную форму ввода.

    Вместо текстового файла можно использовать mysql базу данных или любой другой способ. Я привёл самый простейший способ.
     
    lungsmoney нравится это.
  6. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Класс-обёртка для сurl с примерами.
    http://www.samborsky.com/php/1010/

    Передача формы методом POST в PHP двумя способами.
    http://i-novice.net/peredacha-formy-metodom-post-v-php-dvumya-sposobami/
     
  7. roddik

    roddik Колбаска

    Регистр.:
    26 янв 2007
    Сообщения:
    351
    Симпатии:
    285
    Сохраняй все нужные тебе данные во временный файл (serialize чтобы не морочиться), выдавай форму с капчей, полем для ее ввода и хидден полем с именем файла, потом on submit, читай из файла и продолжай

    ЗЫ: на антикапче 1 бакс за 1000 распознаваний
     
Статус темы:
Закрыта.