Помогите новичку написать скрипт для Human!

вопросы и ответы по использованию PHP
nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 18 фев 2011, 23:15

Во блин ошибка за ошибкой, теперь заметил что если на странице регистрации присутствует 2 поля для ввода email то все нормально

Код: Выделить всё

$input->remove_attribute_by_name('email','name');
$input->set_value_by_name('email',$email);
а если одно поле то все поля заполняются правильно но затем после подтверждения регистрации меня возвращает опять на страницу регистрации и выдает ошибку "ОШИБКА: Неверный e-mail"

И тоже самое с паролем

Код: Выделить всё

$input->remove_attribute_by_name('passw','name');
$input->set_value_by_name('passw',$pass);
$input->set_value_by_name('vpassw',$pass);
Выдает "ОШИБКА: Неверный e-mail
ОШИБКА: Вы должны указать пароль.
Оба пароля разные. Они должны быть идентичными.
"
Хотя все поля заполняются, в чем может быть дело?

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Помогите новичку написать скрипт для Human!

Сообщение satih » 19 фев 2011, 05:34

nikson писал(а):Во блин ошибка за ошибкой, теперь заметил что если на странице регистрации присутствует 2 поля для ввода email то все нормально

Код: Выделить всё

$input->remove_attribute_by_name('email','name');
$input->set_value_by_name('email',$email);
а если одно поле то все поля заполняются правильно но затем после подтверждения регистрации меня возвращает опять на страницу регистрации и выдает ошибку "ОШИБКА: Неверный e-mail"
первая строка кода снимает с поля с name=email атрибут name, вторая строка его заполняет $email в поле с name=email . если было 2 поля, то все ок, с первого поля сняли name, оставшееся заполнили (теперь есть только второе поле с таким name). если же было только 1 поле, то проблема, ибо после снятия атрибута, нет блоше на странице инпута с name=email (его сняли первой строкой скрипта), поэтому второй строке некуда заполнить имеил, и сабмит идет собсно с пустым полем на что и жалуется сайт. нужно подсчитать сколько раз в сурсе появляется name=email или как там написано, и по этому определить, еси есть 2 поля с таким name, или одно.

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Помогите новичку написать скрипт для Human!

Сообщение satih » 19 фев 2011, 05:59

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();
}
и тогда дальнейшая регистрация прекращается, как это предотвратить?

Код: Выделить всё

$app->pause();
останавливает скрипт, предпологается что если скрипт остановился, значит неодно из условий неподошло, что означает что ты не учел все возможные варианты, значит надо проверить страницу на которой остановились, чтоб проверить что можно добавить с нее. сними эту строку, и скрипт останавливатся не будет, просто будет писать 'ERROR: input not found'.

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 19 фев 2011, 11:30

satih писал(а):первая строка кода снимает с поля с name=email атрибут name, вторая строка его заполняет $email в поле с name=email . если было 2 поля, то все ок, с первого поля сняли name, оставшееся заполнили (теперь есть только второе поле с таким name). если же было только 1 поле, то проблема, ибо после снятия атрибута, нет блоше на странице инпута с name=email (его сняли первой строкой скрипта), поэтому второй строке некуда заполнить имеил, и сабмит идет собсно с пустым полем на что и жалуется сайт. нужно подсчитать сколько раз в сурсе появляется name=email или как там написано, и по этому определить, еси есть 2 поля с таким name, или одно.
В том то и дело что есть еще инпут с name, то есть форма регистрации заполняется полностью, но после подтверждения регистрации перекидывает опять на страницу регистрации и выводит ошибку "ОШИБКА: Неверный почтовый адрес", а кое где и "ОШИБКА: Неверный почтовый адрес
ОШИБКА: Неверное имя
ОШИБКА: Вы должны указать пароль.
Оба пароля разные. Они должны быть идентичными."
Хотя все поля заполняются, но потом что-то сбивается.

P.S. Если есть время помогите разобраться, я вам скину скрипт и урл, думаю по примеру легче будет понять, если надо то оплачу работу, а то уже 2 дня бьюсь и ничего не выходит. Пишите в ЛС или скинье icq, договоримся об оплате...

ilekor
Сообщения: 54
Зарегистрирован: 07 ноя 2010, 20:12

Re: Помогите новичку написать скрипт для Human!

Сообщение ilekor » 19 фев 2011, 12:22

nikson писал(а):
satih писал(а):первая строка кода снимает с поля с name=email атрибут name, вторая строка его заполняет $email в поле с name=email . если было 2 поля, то все ок, с первого поля сняли name, оставшееся заполнили (теперь есть только второе поле с таким name). если же было только 1 поле, то проблема, ибо после снятия атрибута, нет блоше на странице инпута с name=email (его сняли первой строкой скрипта), поэтому второй строке некуда заполнить имеил, и сабмит идет собсно с пустым полем на что и жалуется сайт. нужно подсчитать сколько раз в сурсе появляется name=email или как там написано, и по этому определить, еси есть 2 поля с таким name, или одно.
В том то и дело что есть еще инпут с name, то есть форма регистрации заполняется полностью, но после подтверждения регистрации перекидывает опять на страницу регистрации и выводит ошибку "ОШИБКА: Неверный почтовый адрес", а кое где и "ОШИБКА: Неверный почтовый адрес
ОШИБКА: Неверное имя
ОШИБКА: Вы должны указать пароль.
Оба пароля разные. Они должны быть идентичными."
Хотя все поля заполняются, но потом что-то сбивается.

P.S. Если есть время помогите разобраться, я вам скину скрипт и урл, думаю по примеру легче будет понять, если надо то оплачу работу, а то уже 2 дня бьюсь и ничего не выходит. Пишите в ЛС или скинье icq, договоримся об оплате...

В вашей теме я давал решение, полностью готовое к работе, но вижу вы сами не хотите писать и смотреть, что вам тут показывают, например заполнение полей в форме выше писал, дальше я показывал функцию поиска.

Код: Выделить всё

// Поиск определенного текста на странице
function find($text, $where){
return strpos($where, $text);
}

if(find('captcha', $webpage->get_source())) $captchaimg = 'captcha';
if(find('verify', $webpage->get_source())) $captchaimg = 'verify';
if(find('kcaptcha', $webpage->get_source())) $captchaimg = 'kcaptcha';

if($captchaimg) {
ну а тут код для распознавания и заполнения каптчи
}

Удачи, удаляюсь с темы.

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 19 фев 2011, 13:31

ilekor писал(а):но вижу вы сами не хотите писать и смотреть, что вам тут показывают, например заполнение полей в форме выше писал
Так в том то и дело что поля заполняются, здесь не возникает никакой ошибки, но после подтверждение регистрации возникает ошибка якобы поле не заполнено хотя оно заполнялось...

ilekor
Сообщения: 54
Зарегистрирован: 07 ноя 2010, 20:12

Re: Помогите новичку написать скрипт для Human!

Сообщение ilekor » 21 фев 2011, 13:55

nikson писал(а):
ilekor писал(а):но вижу вы сами не хотите писать и смотреть, что вам тут показывают, например заполнение полей в форме выше писал
Так в том то и дело что поля заполняются, здесь не возникает никакой ошибки, но после подтверждение регистрации возникает ошибка якобы поле не заполнено хотя оно заполнялось...
Возможно вы убирали атрибут или подменяли.

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 09 май 2011, 14:49

Добрый день!

Написал скрипт авторегистрации по профилям одного движка, все тип топ работает как часики :D , сегодня напарсил еще небольшую базу под этот движок, единственное отличие в самом процессе регистрации это то что кое-где при завершение регистрации 2 одинаковых $button->click_by_number('0');, подробнее:

Раньше завершение регистрации проходило так $button->click_by_number('0');, в новой базе если делать по номеру то присутствует два номера для завершения и для поиска и оба под номером "0". Как сделать проверку если при условии что на странице присутствует два $button->click_by_number('0');, первый удалялся или пропускался? Хотел сделать по имени, но оно не присвоено...

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Помогите новичку написать скрипт для Human!

Сообщение satih » 09 май 2011, 15:16

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

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 09 май 2011, 16:14

Пример:

http://www.zhuk.net/users.php?m=register

Кнопка "Отправить" и кнопка "Поиск в архиве" имеют один и тот же номер...
Из-за этого и выходит трабла если их две на странице регистрации...

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Помогите новичку написать скрипт для Human!

Сообщение satih » 09 май 2011, 18:10

$form->submit_by_name('login');
если скрипт всех сайтов сайтов стандартный, имя формы тоже должно быть одинаковое, сабмить по нему

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 09 май 2011, 20:19

Не совсем понятно как это будет выглядеть, приведите пожалуйста полный пример кода для этого урл.

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 09 май 2011, 20:24

Вернее где посмотреть имя формы?

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Помогите новичку написать скрипт для Human!

Сообщение nikson » 09 май 2011, 21:22

Спасибо, разобрался, все элементарно, просто нужно иногда отдыхать :D

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Помогите новичку написать скрипт для Human!

Сообщение satih » 10 май 2011, 11:22

Чтобы хорошо работать, нужно хорошо отдыхать :)

я нахожу через хоткей ctrl + alt + left arrow , там в дом элементах ищешь какие формы есть на странице, как правило уже там видно нужную, если все еще нет, выбрать нужную из списка по хтмл сурсу.

Ответить