Авторегистрация аккаунтов.

часто задаваемые вопросы по программе
Ответить
natural
Сообщения: 4
Зарегистрирован: 19 июн 2009, 12:25
Контактная информация:

Авторегистрация аккаунтов.

Сообщение natural » 19 июн 2009, 13:30

После прочтения форума, таки написал скриптец автореги, но работает не совсем так как хотелось бы. Прошу помощи.

Сам скрипт.

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

<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xedant_human_emulator.php");

include ("gen_login_pass.php");

for ($i=0;$i<2;$i++)
{

// going to registration page
$browser->navigate('http://freehosting/register.aspx');
$browser->wait_for(240,1);

// full name
$fullname = file("fullnames.txt");
for ($i=0;$i<count($fullname);$i++)
{
// random
$input->set_value_by_name('txtName',$fullname[rand(0,count($fullname)-1)]);
} 

// email
$email = file("emails.txt");
for($i=0;$i<count($email);$i++) 
{
$input->set_value_by_name('txtEmail',$email[$i]);
} 

// login
$login = file("domains.txt");
for($i=0;$i<count($login);$i++) 
{
$input->set_value_by_name('txtDom',$login[$i]);
} 

// generate password
$password = generate_password(8);

// password
$input->set_value_by_name('txtPwd','$password');

// repeat password
$input->set_value_by_name('txtRePwd','$password');

// captcha
// show captcha dialod
$captcha = $app->dlg_captcha_from_image_number(25);
// enter captcha
$input->set_value_by_name('txtTrickCheck',$captcha);

// I agree
$checkbox->click_by_name("cboxAgree");

// Submit
$btn->click_by_name("btnSubmit");

$file=fopen("registered.txt","a+");
fwrite($file,"$login\t$password\n");
fclose($file); 

}

// Quit
$app->quit();
?>
Первое: Хотелось бы чтобы скрипт работал циклически, т.е. после перехода на следующую страницу он сохранял данны в файл и начинал сначала, но он останавливается после реги первого акаунта.

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

Третье: В файл с регами оно вписывает данные в формате
Array 7Cni1vxr
Array h4n41vga
т.е. каждый раз вместо логина пишет Array.

Если поможете, оформлю для раздела Примеры скриптов или Статьи, если нужно.

Спасибо.

yaman
Сообщения: 32
Зарегистрирован: 23 ноя 2008, 01:33

Сообщение yaman » 19 июн 2009, 18:19

в переменную $login у тебя записан массив
потому скрипт и пишт в выходной файл "Array"
нужно как-то так делать:
$file=fopen("registered.txt","a+");
fwrite($file,"$login[$i]\t$password\n");
fclose($file);

под строками
$email = file("emails.txt");
и
$login = file("domains.txt");
циклы есть - они не нужны
а сами эти строки нужно вынести за пределы основного цикла и обращаться к текущему логину и мейлу так: $login[$i], $email[$i]
и не забудь trim сделать на всяк случай: $input->set_value_by_name('txtDom', rtrim($login[$i]));

а останавливается он у тебя потому, что условие остановки в цикле срабатывает:
for ($i=0;$i<2;$i++)
написал "2" - значение $i достигает "2" и цикл останавливается
очевидно, надо сделать как-то так:
for($i=0; $i<count($login); $i++)

natural
Сообщения: 4
Зарегистрирован: 19 июн 2009, 12:25
Контактная информация:

Сообщение natural » 20 июн 2009, 00:13

yaman писал(а):под строками
$email = file("emails.txt");
и
$login = file("domains.txt");
циклы есть - они не нужны
а сами эти строки нужно вынести за пределы основного цикла и обращаться к текущему логину и мейлу так: $login[$i], $email[$i]
и не забудь trim сделать на всяк случай: $input->set_value_by_name('txtDom', rtrim($login[$i]));
спасибо! действительно заработало.
yaman писал(а):в переменную $login у тебя записан массив
потому скрипт и пишт в выходной файл "Array"
нужно как-то так делать:
$file=fopen("registered.txt","a+");
fwrite($file,"$login[$i]\t$password\n");
fclose($file);
а можно rtrim($login[$i]) как в прошлом примере? запихнуть прямо в fwrite($file,"$login[$i]\t$password\n");
а то пришлось сделать через костыль

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

$domain = rtrim($login[$i];
fwrite($file,"$domain\t$password\n");
:?:
yaman писал(а):а останавливается он у тебя потому, что условие остановки в цикле срабатывает:
for ($i=0;$i<2;$i++)
написал "2" - значение $i достигает "2" и цикл останавливается
очевидно, надо сделать как-то так:
for($i=0; $i<count($login); $i++)
чесслово, в изначальном виде скрипта оно зависало после первого прохода, а 2 я специально для теста поставил, я знал за что оно отвечает :)

natural
Сообщения: 4
Зарегистрирован: 19 июн 2009, 12:25
Контактная информация:

Сообщение natural » 20 июн 2009, 00:52

natural писал(а):а можно rtrim($login[$i]) как в прошлом примере? запихнуть прямо в fwrite($file,"$login[$i]\t$password\n");
а то пришлось сделать через костыль
впринципе осталось интересно, но для данного скрипта вопрос снят. добавил в костыль еще конвертацию в нижний регистр, самое оно.

спасибо! еще на днях антикапчу прикручу. если нужно -опишу свой опыт для широкой публики.

yaman thanks once again :!:

yaman
Сообщения: 32
Зарегистрирован: 23 ноя 2008, 01:33

Сообщение yaman » 20 июн 2009, 13:07

> а можно rtrim($login[$i]) как в прошлом примере? запихнуть прямо в fwrite
да, можно, это ведь одно и то же

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

fwrite($file, strtolower(rtrim($login[$i]))."\t".$password."\n");
просто если разделить на строки, код более читаемым будет

кстати, эту строку $fullname = file("fullnames.txt"); тоже за пределы цикла нужно вынести и цикл из-под неё убрать

natural
Сообщения: 4
Зарегистрирован: 19 июн 2009, 12:25
Контактная информация:

Сообщение natural » 20 июн 2009, 21:16

yaman писал(а):кстати, эту строку $fullname = file("fullnames.txt"); тоже за пределы цикла нужно вынести и цикл из-под неё убрать
так и сделал :)

medar2
Сообщения: 55
Зарегистрирован: 15 апр 2009, 16:48
Контактная информация:

Сообщение medar2 » 21 июн 2009, 02:32

Еще раз - file() делает массив с элементами, но в конце каждого элемента стоит символ перевода строки. Чтобы этого не было, надо юзать параметр FILE_IGNORE_NEW_LINES
file("file.txt", FILE_IGNORE_NEW_LINES)

И учите php - http://www.softtime.ru/bookphp/gl1_1.php , он простой и рулез.

yaman
Сообщения: 32
Зарегистрирован: 23 ноя 2008, 01:33

Сообщение yaman » 21 июн 2009, 04:21

константа FILE_IGNORE_NEW_LINES не работает под виндами
"\n" удаляет, а "\r" оставляет

creator123
Сообщения: 13
Зарегистрирован: 01 дек 2008, 14:30
Контактная информация:

Сообщение creator123 » 21 июн 2009, 11:49

yaman писал(а):константа FILE_IGNORE_NEW_LINES не работает под виндами
"\n" удаляет, а "\r" оставляет
ну тогда trim()

safed
Сообщения: 2
Зарегистрирован: 15 май 2009, 12:00

Re: Авторегистрация аккаунтов.

Сообщение safed » 10 июл 2009, 12:04

natural писал(а):После прочтения форума, таки написал скриптец автореги
Авторега для чего, какого движка?

Ответить