nikson писал(а):Возник вопрос, если определять капчу по части урл, то как сделать перебор, возможны два варианта:
Код: Выделить всё
$image->save_to_file_by_url("/cache/verify","F:\captcha.jpg", "false");
$image->save_to_file_by_url("/kcaptcha/kcaptcha","F:\captcha.jpg", "false");
ты видно не разобрал для себя скрипт
тут, где я попробывал обьяснить конструкцию if elseif else, а жаль, одна из наиболее часто используемых. что-ж, покажу еще раз, только плиз не смотри чем именно заполняю условия (функции хумана в скобках), а именно на структуру, т.е. сначала проверяем условие в if, если оно сбылось, то следущие esleif не исполнятся, потом проверяется второй esleif, если он сбудется (условие в скобках вернет true), то следущие esleif не исполнятся, и так далее. последнее else дефолтный вариант, который исполнится когда неисполнилось ничего из списка до него.
Код: Выделить всё
if ($image->save_to_file_by_url("/cache/verify","F:\captcha.jpg", false)) echo 'captcha saved by url = /cache/verify<br>';
elseif ($image->save_to_file_by_url("/kcaptcha/kcaptcha","F:\captcha.jpg", false)) echo 'captcha saved by url = /kcaptcha/kcaptcha<br>';
else echo 'ERROR: captcha not found by url, need to fill more elseif conditions :( <br>';
nikson писал(а):И еще один, бывает что капча отсутствует
Код: Выделить всё
// Есть ли инпут с name 'captcha_code'
if ($input->is_exist_with_name('captcha_code')) $custom_input = 'captcha_code';
// Есть ли инпут с name 'user_code'
elseif ($input->is_exist_with_name('user_code')) $custom_input = 'user_code';
// Инпута нет, что делать???
else {
echo 'ERROR: input not found<br>';
$app->pause();
}
и тогда дальнейшая регистрация прекращается, как это предотвратить?
останавливает скрипт, предпологается что если скрипт остановился, значит неодно из условий неподошло, что означает что ты не учел все возможные варианты, значит надо проверить страницу на которой остановились, чтоб проверить что можно добавить с нее. сними эту строку, и скрипт останавливатся не будет, просто будет писать 'ERROR: input not found'.