вопросы и ответы по использованию PHP
-
KEFIR4UK
- Сообщения: 49
- Зарегистрирован: 08 апр 2014, 12:00
Сообщение
KEFIR4UK » 27 июн 2014, 18:30
Пишу авторегистратор, в нем есть цикл с помощью которого проверяется есть ли та или инная надпись,если есть то деламем регистрацию заново, если нет то йдем дальше.Проблема в том что после выполнения проверочного цикла. скрипт начинает работу заново,не выполнив точ что йдет за ним.
Код: Выделить всё
for($q;$q<$count_acc;$q++)
{
что то
do
{
что то еще
}
while(strpos ($webpage->get_body(),"Логин занят.")==true || strpos ($webpage->get_body(),"Неверрно введено число")==true);
$browser->wait_for(20,2);
sleep(5);
if(strpos ($webpage->get_body(), "?aaeno?aoey i?ioea oniaoii. Iu ?aau i?eaaonoaiaaou Aan ia Russia.ru")==true)
{
условие которрое не выволняется
}
}
Никаких брейков там нет.
-
k907
- Сообщения: 322
- Зарегистрирован: 21 май 2014, 20:32
Сообщение
k907 » 28 июн 2014, 12:59
Возможно фразы "Логин занят." и "Неверно введено число" всегда присутствует на странице, но скрыты до определенного момента, поэтому получаем вечный цикл do...while. Попробуйте привязаться к другим проверочным условиям.
-
k907
- Сообщения: 322
- Зарегистрирован: 21 май 2014, 20:32
Сообщение
k907 » 28 июн 2014, 13:43
Если проблема не в do...while.
После того как отработал do...while сохраните код страницы полученный через $webpage->get_body() в файл и попытайтесь найти "?aaeno?aoey i?ioea oniaoii. Iu ?aau i?eaaonoaiaaou Aan ia Russia.ru" вручную, возможно искомая фраза из strpos в коде страницы выглядит немного иначе, например не совпадают по регистру некоторые символов (тогда используйте stripos) или есть дополнительные пробелы (тогда ищите по регулярному выражению через preg_match("//",$webpage->get_body()) )