Самые-самые основы...

часто задаваемые вопросы по программе
Ответить
se_home
Сообщения: 8
Зарегистрирован: 13 янв 2009, 17:42

Самые-самые основы...

Сообщение se_home » 14 янв 2009, 06:50

В общем, что-то я по кускам скриптов, которые уже есть без пол литра разобраться не могу)

Интересно следующее:

1. Как сделать ввод из файла в определенное поле:
а) значения по порядку из файла
б) случайной строки из файла
Если заполнять вручную, то строка будет выглядеть так:
$input->set_value_by_name('username','test_name');
test_name - это мое значение, которое хотелось бы брать из файла.
Если значения поля будут браться по порядку - то обязательно ли прохождение всего списка значений в файле или надо будет для каждого следующего значения каждый раз запускать заново?

2. По поводу этого примера - https://xn--80awbbeioodeq4h3a.xn--p1ai/scripts/sc_forum.php. Не понятно где брать файл gen_login_pass.php.
Я написал:
<?php
// The following code is required to properly run Xedant.com Human Emulator
require("c:\Program Files\Xedant\Human Emulator/Templates/xedant_human_emulator.php");

$browser->navigate("http://site.com/register.html");
$browser->wait_for(240,1);

include("gen_login_pass.php");

$lgn=generate_login(8);
$pwd=generate_password(10);
$email=generate_login(9);

// fill all requred fields
$input->set_value_by_number(0,$lgn);
$input->set_value_by_number(1,$pwd);
$input->set_value_by_number(2,$pwd);
$input->set_value_by_number(3,"$email@gmail.com");
$input->set_value_by_number(4,"$email@gmail.com");

$mouse->click('169','465');
$browser->wait_for(240,1);

$input->set_value_by_name('nospam','Ieine');

// save login and password to file
add_file(“d:test.txt”,$lgn.";".$pwd."\n")

// click on button
$button->click_by_number(0);
$browser->wait_for(10,1);

// Quit
$app->quit();
?>
Ругается на ошибку:
Parse error: syntax error, unexpected ':' in C:\Program Files\Xedant\Human Emulator\My Scripts\MyScript5.php on line 27

3. Мой написанный скрипт для регистрации:
<?php
// The following code is required to properly run Xedant.com Human Emulator
require('../Templates/xedant_human_emulator.php');

$browser->navigate('http://site.com ');
$browser->wait_for(240,1);

$mouse->click('67','26');
$browser->wait_for(240,1);

$mouse->click('244','281');
$browser->wait_for(240,1);

$input->set_value_by_name('username','test_name');

$input->set_value_by_name('password','12345');

$input->set_value_by_name('passwordconfirm','12345');

$input->set_value_by_name('email','1234532@gmail.com');

$input->set_value_by_name('emailconfirm','1234532@gmail.com');

$mouse->click('270','473');
$browser->wait_for(240,1);

$input->set_value_by_name('nospam','Ìèíñê');

// click on button
$button->click_by_number(0);
$browser->wait_for(10,1);

// Quit
$app->quit();
?>
Что сюда надо добавить, чтобы сохранить введенные логины/пароли/email в внешний txt файл?

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

LagerAlexey
Site Admin
Сообщения: 18
Зарегистрирован: 04 сен 2008, 16:10

Сообщение LagerAlexey » 14 янв 2009, 18:27

2. Собственно там используется скрипт генерации логинов паролей, коих великое множество в интернете :) Если интересует именно этот - качайте тут: https://xn--80awbbeioodeq4h3a.xn--p1ai/download/gen_login_pass.rar

3. Работа с файлами реализуется с помощью PHP команд:

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

текстовик с таким названием: "logins.txt", должен лежать в папке со скриптом.

В этой строке: fwrite($file,"$login\n");
а именно тут: "$login\n", где у меня $login - прописываете переменные, данные которых нужно сохранить.

Для большего понимания пример кусочка скрипта написаного мной:

include ("gen_login_pass.php"); - этот скрипт тоже должен лежать в одной папке со скриптом, который пишем.

$login = generate_login(8 ); - тут пробел в скобке нужно убрать. Я не могу, форум заменяет смайлом.
$pwd="barabarabaraba";
$emails=generate_login(8 ); - и тут пробел в скобке нужно убрать.
$email=$emails."@mailforspam.com";

$input->set_value_by_number(0,$login);
$listbox->select_num_value_by_number(0,1);
$input->set_value_by_number(4,$pwd);
$input->set_value_by_number(5,$pwd);
$input->set_value_by_number(6,$email);

$file=fopen("logins.txt","a+");
fwrite($file,"$login;$email;$pwd\n");
fclose($file);[/url]

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 14 янв 2009, 20:01

1. Как сделать ввод из файла в определенное поле:
а) значения по порядку из файла
б) случайной строки из файла
Если заполнять вручную, то строка будет выглядеть так:
$input->set_value_by_name('username','test_name');
test_name - это мое значение, которое хотелось бы брать из файла.
Если значения поля будут браться по порядку - то обязательно ли прохождение всего списка значений в файле или надо будет для каждого следующего значения каждый раз запускать заново?
a) занчение по порядку из файла

если каждое значение в файле стоит в отдельной строке тогда мы просто грузим файл в массив следующей строкой:

$data = file("data.txt") - где data.txt это файл со значениями который лежимт там же где и скрипт (или указать полный путь к файлу если он лежит в другом месте)

после вызываем след код:
// это для по порядку
for($i=0$i<count($data);$i++)
{
$input->set_value_by_name('username',$data[$i]);
}

если нам надо заполнять случайно, то используем след код:

так же читаем в массив а потом просто вызываем

$input->set_value_by_name('username',$data[rand(0,count($data)-1)]);

можно это делать и в цикле в принципе данную строку можно вызывать бесконечное число раз))

se_home
Сообщения: 8
Зарегистрирован: 13 янв 2009, 17:42

Сообщение se_home » 14 янв 2009, 20:33

Parse error: syntax error, unexpected T_FOR in C:\Program Files\Xedant\Human Emulator\My Scripts\MyScript7.php on line 23

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

$data = file("data.txt")

for($i=0$i<count($data);$i++)
{
$input->set_value_by_name('username',$data[$i]);
} 
если так сделать

23-я строка - это:

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

for($i=0$i<count($data);$i++)

se_home
Сообщения: 8
Зарегистрирован: 13 янв 2009, 17:42

Сообщение se_home » 14 янв 2009, 20:39

Еще такой вопрос - как для моего скрипта регистрации аккаунтов реализовать, чтобы каждый новый аккаунт регистрировался через прокси, список которых лежит в папке со скриптом (или как еще прокси брать можно?).

Мой скрипт:

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

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

$browser->navigate('http://site.com ');
$browser->wait_for(240,1);

$mouse->click('67','26');
$browser->wait_for(240,1);

$mouse->click('244','281');
$browser->wait_for(240,1);

include ("gen_login_pass.php");

$login =generate_login(8);
$pwd=generate_password(10);
$emails=generate_login(8);
$email=$emails."@gmail.com"; 

$input->set_value_by_name('username',$login);

$input->set_value_by_name('password',$pwd);

$input->set_value_by_name('passwordconfirm',$pwd);

$input->set_value_by_name('email',$email);

$input->set_value_by_name('emailconfirm',$email);

$mouse->click('270','473');
$browser->wait_for(240,1);

$input->set_value_by_name('nospam','Ìèíñê');

// click on button
$button->click_by_number(0);
$browser->wait_for(10,1); 

$mouse->click('108','110');
$browser->wait_for(240,1);


$mouse->click('254','387');
$browser->wait_for(240,1);


$anchor->click_by_inner_text("Âûõîä","true"); 
$browser->wait(1);  

$browser->enable_browser_message_boxes(true,"Ok");


$file=fopen("logins.txt","a+");
fwrite($file,"$login:$pwd\n");
fclose($file); 

// Quit
$app->quit();
?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 14 янв 2009, 21:03

Parse error: syntax error, unexpected T_FOR in C:\Program Files\Xedant\Human Emulator\My Scripts\MyScript7.php on line 23

Код:
$data = file("data.txt")

for($i=0$i<count($data);$i++)
{
$input->set_value_by_name('username',$data[$i]);
}


если так сделать

23-я строка - это:
Код:
for($i=0$i<count($data);$i++)
тут прсот забыл поставить ;

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

for($i=0;$i<count($data);$i++) 

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 14 янв 2009, 21:05

se_home писал(а):Еще такой вопрос - как для моего скрипта регистрации аккаунтов реализовать, чтобы каждый новый аккаунт регистрировался через прокси, список которых лежит в папке со скриптом (или как еще прокси брать можно?).

Мой скрипт:

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

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

$browser->navigate('http://site.com ');
$browser->wait_for(240,1);

$mouse->click('67','26');
$browser->wait_for(240,1);

$mouse->click('244','281');
$browser->wait_for(240,1);

include ("gen_login_pass.php");

$login =generate_login(8);
$pwd=generate_password(10);
$emails=generate_login(8);
$email=$emails."@gmail.com"; 

$input->set_value_by_name('username',$login);

$input->set_value_by_name('password',$pwd);

$input->set_value_by_name('passwordconfirm',$pwd);

$input->set_value_by_name('email',$email);

$input->set_value_by_name('emailconfirm',$email);

$mouse->click('270','473');
$browser->wait_for(240,1);

$input->set_value_by_name('nospam','Ìèíñê');

// click on button
$button->click_by_number(0);
$browser->wait_for(10,1); 

$mouse->click('108','110');
$browser->wait_for(240,1);


$mouse->click('254','387');
$browser->wait_for(240,1);


$anchor->click_by_inner_text("Âûõîä","true"); 
$browser->wait(1);  

$browser->enable_browser_message_boxes(true,"Ok");


$file=fopen("logins.txt","a+");
fwrite($file,"$login:$pwd\n");
fclose($file); 

// Quit
$app->quit();
?>
вот код реализации прокси в xhe:

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

// первое что мы делаем читаем прокси из файла в массив
$proxy = file("proxy.txt");

// далее идём по массиву
for ($j=0;$j<count($proxy);$j++)
{
// устанавливаем текущее прокси
enable_proxy("all connections",$proxy[$j]);
// проверяем прокси на нужном нам урле и нужное нам время
// если за 30 секунд мы не подключились к google прокси плохая
$connect = $browser->check_connection("http://www.google.com",30);
// если плохая прокся идём дальше
if(!$connect)
{
$browser->disable_proxy("all connections");
continue;
}
/* тут выполняем нужные нам действия */
/* например регаем мыло или фришный хост или блог и т.д. */
}
// отключаем прокси
$browser->disable_proxy("all connections");
}

se_home
Сообщения: 8
Зарегистрирован: 13 янв 2009, 17:42

Сообщение se_home » 14 янв 2009, 21:55

Спасибо за ответы!

jkvoka
Сообщения: 3
Зарегистрирован: 07 фев 2009, 00:46

Сообщение jkvoka » 07 фев 2009, 22:41

у меня при копи паст данной конструкции начинает ругаться на закрывающий тег пхп. Как же всё таки включить эту конструкцию в скрипт?
Parse error: parse error in

и на этой строке как раз ?>

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 09 фев 2009, 13:28

надо вот так вот

// первое что мы делаем читаем прокси из файла в массив
$proxy = file("proxy.txt");

// далее идём по массиву
for ($j=0;$j<count($proxy);$j++)
{
// устанавливаем текущее прокси
enable_proxy("all connections",$proxy[$j]);
// проверяем прокси на нужном нам урле и нужное нам время
// если за 30 секунд мы не подключились к google прокси плохая
$connect = $browser->check_connection("http://www.google.com",30);
// если плохая прокся идём дальше
if(!$connect)
{
$browser->disable_proxy("all connections");
continue;
}
/* тут выполняем нужные нам действия */
/* например регаем мыло или фришный хост или блог и т.д. */
}
// отключаем прокси
$browser->disable_proxy("all connections");

Ответить