Как часть URL брать из переменной?

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Как часть URL брать из переменной?

Сообщение kmvxhe » 02 апр 2012, 08:20

Как часть урл брать из переменной?

$nomerper=('21205333');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');

Как в переменную $nomerper подгружать данные из файла?
Допустим в файле nomerper.txt есть 5 строк с номерами, как в адрес вставлять номера переменных из файла по очереди и на каждой странице выполнять скрипт?
Нужно использовать цикл, как правильно?

Задача:

перейти на страницу
$nomerper=('1');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');
выполнить скрипт
перейти на страницу
$nomerper=('2');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');
выполнить скрипт
....................
и т.д.
переменную $nomerper каждый раз брать из файла в следующей строке, но нужно остановиться по достижении конца строк в файле и остановить скрипт соответственно.

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Как часть URL брать из переменной?

Сообщение xscripts » 02 апр 2012, 14:04

kmvxhe писал(а):Как часть урл брать из переменной?

$nomerper=('21205333');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');

Как в переменную $nomerper подгружать данные из файла?
Допустим в файле nomerper.txt есть 5 строк с номерами, как в адрес вставлять номера переменных из файла по очереди и на каждой странице выполнять скрипт?
Нужно использовать цикл, как правильно?

Задача:

перейти на страницу
$nomerper=('1');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');
выполнить скрипт
перейти на страницу
$nomerper=('2');
$browser->navigate('http://ati.su/EditPages/EditLoad.aspx?I ... Mode=Popup');
выполнить скрипт
....................
и т.д.
переменную $nomerper каждый раз брать из файла в следующей строке, но нужно остановиться по достижении конца строк в файле и остановить скрипт соответственно.

Cначала читаем из файла строки в массив, после чего в цикле получаем каждый элемент массива и подставляем его в url.

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

// читаем из файла в массив
$nomerper=file("nomerper.txt");

// пройдёмся в цикле по массиву
for($i=0;$i<count($nomerper);$i++)
{
    // переход по url 
    $browser->navigate('http://ati.su/EditPages/EditLoad.aspx?ID='.$nomerper[$i].'&Action=Edit&WindowMode=Popup');

// делаем что то на сайте...
}
http://x-scripts.com/

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

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 02 апр 2012, 16:59

Еще вопрос, как действия на странице так же записать в переменную или какую либо функцию, а потом ее вызывать, так так действия на каждой странице идентичны?

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как часть URL брать из переменной?

Сообщение bigfozzy » 02 апр 2012, 18:36

Насколько понял имеется ввиду как в пхп создать функцию ?

Вот пример:

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

function action_on_page($param1,$param2) 
{ 
	$global $browser,$input,$button;
        $browser->navigate("ya.ru");
        $input->set_value_by_number(0,"1");
        $button->click_by_number(1);
}
Во дока:
http://www.php.su/functions/custom/?1

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 02 апр 2012, 22:26

bigfozzy писал(а):Насколько понял имеется ввиду как в пхп создать функцию ?

Вот пример:

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

function action_on_page($param1,$param2) 
{ 
	$global $browser,$input,$button;
        $browser->navigate("ya.ru");
        $input->set_value_by_number(0,"1");
        $button->click_by_number(1);
}
Во дока:
http://www.php.su/functions/custom/?1
Т.е. я могу написать скрипт разгадывания капчи, создать функцию и потом просто ее вызывать?
Я правильно понял?

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 02 апр 2012, 23:07

Написал функцию в которой скрипт авторизуется на сайте, вызываю а она не срабатывает, что неправильно?

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$browser->wait_for();
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();
}

vkhod ();

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Как часть URL брать из переменной?

Сообщение xscripts » 02 апр 2012, 23:11

kmvxhe писал(а):Написал функцию в которой скрипт авторизуется на сайте, вызываю а она не срабатывает, что неправильно?

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$browser->wait_for();
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();
}

vkhod ();
а так :

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

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
global $browser, $input, $inputimage;

$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true); 

$browser->navigate($s);
$browser->wait_for();

$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);

$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();

}
http://x-scripts.com/

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

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 02 апр 2012, 23:20

xscripts писал(а):
kmvxhe писал(а):Написал функцию в которой скрипт авторизуется на сайте, вызываю а она не срабатывает, что неправильно?

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$browser->wait_for();
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();
}

vkhod ();
а так :

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

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
global $browser, $input, $inputimage;

$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true); 

$browser->navigate($s);
$browser->wait_for();

$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);

$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();

}
Выдает следующие ошибки:

Parse error: syntax error, unexpected '$app' (T_VARIABLE) in E:\РАБОТА\XHE\ATI_vkhod.php on line 98

PHP Parse error: syntax error, unexpected '$app' (T_VARIABLE) in E:\РАБОТА\XHE\ATI_vkhod.php on line 98


98 строка в файле

$app->quit();

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Как часть URL брать из переменной?

Сообщение xscripts » 02 апр 2012, 23:58

а весь целиком как скрипт выглядит?
http://x-scripts.com/

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

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 03 апр 2012, 06:59

xscripts писал(а):а весь целиком как скрипт выглядит?
<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

$xhe_host ="127.0.0.1:7011";

// The following code is required to properly run XWeb Human Emulator
require("C:\XWeb\Human Emulator/Templates/xweb_human_emulator.php");

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
global $browser, $input, $inputimage;
$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$browser->wait_for();
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();
}
vkhod ();
// Quit
$app->quit();
?>

ОШИБКА:

Call Stack:
0.9400 121136 1. {main}() C:\XWeb\Human Emulator\My Scripts\_run_selected_.php:0
0.9982 3606688 2. vkhod() C:\XWeb\Human Emulator\My Scripts\_run_selected_.php:29

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 03 апр 2012, 07:01

или такая ошибка

Call Stack:
0.9885 121136 1. {main}() C:\XWeb\Human Emulator\My Scripts\_run_selected_.php:0
1.0472 3606728 2. vkhod() C:\XWeb\Human Emulator\My Scripts\_run_selected_.php:23

kmvxhe
Сообщения: 23
Зарегистрирован: 30 мар 2012, 09:04

Re: Как часть URL брать из переменной?

Сообщение kmvxhe » 03 апр 2012, 07:38

В таком виде все работает:

// Объявление переменных
$l='kmvtest1';
$p='kmvtest1kmvtest1';
$s='http://ati.su';

//Функция авторизации
function vkhod ($l,$p,$s)
{
global $browser, $input, $inputimage;
$browser->clear_cookies('',true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
}
//Вызов функции авторизации
vkhod ($l,$p,$s);

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как часть URL брать из переменной?

Сообщение bigfozzy » 03 апр 2012, 19:16

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

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

$xhe_host ="127.0.0.1:7010";

function vkhod ($l=kmvtest1,$p=kmvtest1kmvtest1,$s='http://ati.su')
{
global $browser, $input, $inputimage;
$browser->clear_cookies("",true);
$browser->clear_cache();
$browser->enable_java(true);
$browser->navigate($s);
$browser->wait_for();
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$UserName',$l);
$input->set_value_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$Password',$p);
$inputimage->click_by_name('ctl00$ctl00$main$extLogin$ctlHeaderLogin$btnHeaderLogin');
$browser->wait_for();
}
vkhod ();
// Quit
$app->quit();
?>
вот так работает.

Ответить