Вопросы Php по Human Emulator

chuchea

Создатель
Регистрация
5 Янв 2009
Сообщения
31
Реакции
2
Здраствуйье!С
Сразу прошу прощения, если запостил не в тот раздел.
Вообщем проблема такова:

Многие знакомы с таким интсрументом как Human Emulator.
Чтобы было возможно работать с ним нужно знать Php, в котором я весьма слаб.

Так вот например для регистрации на том же h_ttp://blogs.technet.com прописываем следующие макросы:

Код:
$browser->navigate("http://blogs.technet.com/user/CreateUser.aspx");
$browser->wait(1);
$input->set_value_by_name("ctl00_bcr_ctl00___Username",Gregory);
$input->set_value_by_name("ctl00_bcr_ctl00___Password",$password);
$input->set_value_by_name("ctl00_bcr_ctl00___Password2",578jip);
$input->set_value_by_name("ctl00_bcr_ctl00___Email",fresers@gmail.com);
$input->set_value_by_name("ctl00_bcr_ctl00___Email2",fresers@gmail.com);
$button->click_by_name("ctl00_bcr_ctl00___CreateAccount");
$browser->wait(1);
Подскжите как прописать код, чтобы Human Emulator брал никнеймы и email с текстового файла на компе?
Очень нуждаюсь в помощи!
 
PHP:
//Берем первую строку из файла и удаляем (например логин)
function GetLogin() {
$logins = file('logins.txt');
$login= $logins[0];
$login= trim($login);
unset($logins[0]);
$fp = fopen('source.txt', 'w');
fputs($fp, implode('', $logins) );
fclose($fp);
return $login;
}

//Берем случайную строку из файла и не удаляем. (мыло)
function GetMail() {
	$path='mails.txt';
	$mails = file($path);
	$index = rand(0, count($mails) - 1);
	$mail= $mails[$index];
	$mail= preg_replace("|\n|"," ",$mail);
	$mail= trim($mail);
	return $mail;
}
это функции. одна берет строку первую из файла и удаляет. другая берет случайную строку и ничего не удаляет. юзать можешь так:
PHP:
$login= GetLogin();
$mail= GetMail();

затем хуману подставляешь примерно так:
PHP:
$input->set_value_by_name("ctl00_bcr_ctl00___Email",$mail);
$input->set_value_by_name("ctl00_bcr_ctl00___Email2",$mail);
 
Значит получается, что я добавляю после
Код:
<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/tech.php");

//Берем первую строку из файла и удаляем (например логин) 
function GetLogin() { 
$logins = file('logins.txt'); 
$login= $logins[0]; 
$login= trim($login); 
unset($logins[0]); 
$fp = fopen('source.txt', 'w'); 
fputs($fp, implode('', $logins) ); 
fclose($fp); 
return $login; 
} 

//Берем случайную строку из файла и не удаляем. (мыло) 
function GetMail() { 
    $path='mails.txt'; 
    $mails = file($path); 
    $index = rand(0, count($mails) - 1); 
    $mail= $mails[$index]; 
    $mail= preg_replace("|\n|"," ",$mail); 
    $mail= trim($mail); 
    return $mail; 
} 

$login= GetLogin(); 
$mail= GetMail();
А в $input->set_value_by_name("ctl00_bcr_ctl00___Username",$login);
И нужно ли прописывать полный путь к файлу?
 
Если файл лежит в папке со скриптом то не обязательно прописывать.
 
да, можно и так. обращай побольше внимания на точные мелкие штучки всякие. поначалу когда осваиваешься это самая тормозящая и бесячая особенность. например счас ты написал $l ogin вместо $login (сделал лишний пробел). а в первом посте-
PHP:
$input->set_value_by_name("ctl00_bcr_ctl00___Email2",fresers@gmail.com);
вместо
PHP:
$input->set_value_by_name("ctl00_bcr_ctl00___Email2","fresers@gmail.com");
(не добавил кавычки. любая строка, которую ты придумал, должна заключаться в кавычках. если это не переменная) то есть
PHP:
$input->set_value_by_name("ctl00_bcr_ctl00___Email2","fresers@gmail.com");
в кавычках. а переменная- без:
PHP:
$input->set_value_by_name("ctl00_bcr_ctl00___Email2",$login);

по аналогии с этими функциями- пишутся и все остальные. взять случайный город, взять случайное имя, случайную фамилию. ну и тд, все что хуману надо
 
PHP:
//Берем первую строку из файла и удаляем (например логин)
function GetLogin() {
$logins = file('logins.txt');
$login= $logins[0];
$login= trim($login);
unset($logins[0]);
$fp = fopen('source.txt', 'w');
fputs($fp, implode('', $logins) );
fclose($fp);
return $login;
}
создал logins.txt и source.txt (положил в папку со скриптом)
вставил функцию в отдельный скрипт и привязал его к основному
в основном скрипте добавил
$login= GetLogin();
$input->set_value_by_name('username',$login);

в итоге все время берется первое имя в списке, а строки в logins.txt не удаляются
 
PHP:
function GetLogin() {
    $logins=file_get_contents('logins.txt');
    $logins=explode("\n",trim($logins));
    $newlog=array();
    $a=0;
    $count=sizeof($logins);
    while($a<$count) {
        if($a>0) $newlog[]=trim($logins[$a]);
        $a++;
    }
    $fp=fopen('logins.txt','w');
    fwrite($fp,implode("\n",$newlog));
    fclose($fp);
    return $logins[0];
}
 
Yaggi Jah
скажите а как сделать что бы данные (логин, пароль, емейл) брались из разных файлов построчно начиная с первого и дальше (1,2,3,4,...)?
тоесть что бы при регистрации аккаунта, бралась сначало первая строка из каждого файла (login.txt, pass.txt, mail.txt). Потом вторая, и т.д.

пробывал так
PHP:
//Подключаем текстовый файл с емейлами, берутся построчно
$mails = array_map("trim", file("mails.txt"));
foreach($mails as $k=>$mail) {

//Подключаем текстовый файл с паролями, берутся построчно
$passs = array_map("trim", file("pass.txt"));
foreach($passs as $i=>$pass) {
получается что сначала берутся все строки из файла mails.txt и только первое значение из pass.txt Потом опятьс все строки из mails.txt и второе значение.
 
Yaggi Jah
скажите а как сделать что бы данные (логин, пароль, емейл) брались из разных файлов построчно начиная с первого и дальше (1,2,3,4,...)?
тоесть что бы при регистрации аккаунта, бралась сначало первая строка из каждого файла (login.txt, pass.txt, mail.txt). Потом вторая, и т.д.
PHP:
$a=file('login.txt');
$b=file('pass.txt');
$c=file('mail.txt');

обработку в цикл на количество строк в файлах
и обращаться к переменным в цикле как к:
$a[$i] и т.д.
 
Здесь не нужна никакая функция, только цикл:
PHP:
$a=file('login.txt');
$b=file('pass.txt');
$c=file('mail.txt');

// 100 - это количество строк в файлах, которое нужно обработать
for ($i=0;$i<100;$i++)
{
$login=$a[$i];
$pass=$b[$i];
$mail=$c[$i];
}
 
Назад
Сверху