Баги в классе $raw

Если вы обнаружили какие либо ошибки, недочеты и неудобства или другие незачеты в программе напишите нам об этом на этом форуме - мы бум исправлять
Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Баги в классе $raw

Сообщение k907 » 14 окт 2015, 21:21

Здравствуйте.

1. $raw->save_server_log_to_file($path) и $raw->save_browser_log_to_file($path) не работают, возвращают "Notice: Undefined variable: fullfilename in D:\XWeb\Human Emulator 7001\Templates\Objects\Web\xhe_raw.php on line 53" и "Notice: Undefined variable: fullfilename in D:\XWeb\Human Emulator 7001\Templates\Objects\Web\xhe_raw.php on line 59"

2. $raw->set_hook_on_begin_transaction() не работает, тестировал на примере из папки Test Samples, после запуска скрипта начинают плодится окна консоли и HE виснет, fiddler показывает, что заголовки запроса не изменились. С $raw->set_hook_on_response(); те же проблемы.

3. Еще заметил, что на сайте нет описания методов $raw->save_server_log_to_file($path) и $raw->save_browser_log_to_file($path)

Версия НЕ 4.9.23 ОС win7 64
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 15 окт 2015, 12:18

Добрый день.
Спасибо за информацию, передам разработчикам. В разделе $raw еще могут встречаться недочеты, так как была не сильно востребованная функция ей определенное время не уделяли внимания.

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Баги в классе $raw

Сообщение k907 » 15 окт 2015, 13:01

Подскажите пожалуйста, есть ли какая то альтернатива set_hook_on_begin_transaction(), необязательно из функционала НЕ, т.е. нужно изменять данные передаваемые на сервер.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 15 окт 2015, 14:42

Кстати по поводу примеров во втором пункте, попробовал у себя Win7 64 bit 4.9.23 HE , ничего такого как вы описали не происходит и программа дальше полноценно работает не крешится и не виснет.
По поводу альтернативы, я думаю вам стоит обратить внимание в сторону Privoxy.

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Баги в классе $raw

Сообщение k907 » 15 окт 2015, 16:11

Support писал(а):Кстати по поводу примеров во втором пункте, попробовал у себя Win7 64 bit 4.9.23 HE , ничего такого как вы описали не происходит и программа дальше полноценно работает не крешится и не виснет.
Код который я использовал:

// зададим хук на передачу данных от браузера к сайту (отключить logo.png)
$raw->set_hook_on_begin_transaction("begin_transaction_hook1.php");

// navigate
$browser->navigate("http://www.mail.yandex.ru");
$browser->wait(1);

$input->set_value_by_name("login","ttt");
$input->set_value_by_name("passwd","ttt");
sleep(1);

// включим слежение
$raw->enable_all_streams(true);
$btn->click_by_inner_text("Войти",false);
$raw->enable_all_streams(false);

//********************* Хук begin_transaction_hook1.php *****************
// получим запрашиваемый урл
$request_url=file("begin_transaction_hook1.in1");
$request_header = file("begin_transaction_hook1.in");

// сформируем заголовк (игнорируем загрузку logo.png и заменим акцепты на английские и подменим разрешение экрана - оригинальное 1440x900)
$Handle = fopen("begin_transaction_hook1.out", 'w');

for ($i=0;$i<count($request_header);$i++)
{
// меняем акцепты
$str = str_replace("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Googlebot", $request_header[$i]);
fwrite($Handle,$str);
}

fwrite($Handle,"upgrade-insecure-requests: 2");
fclose($Handle);

// сформируем урл (игнорируем загрузку logo.png и заменим акцепты на английские и подменим разрешение экрана - оригинальное 1440x900)
$Handle = fopen("begin_transaction_hook1.out1", 'w');
$res=strstr($request_url[0],"logo.png");
if ($res===false)
{
for ($i=0;$i<count($request_url);$i++)
{
// меняем акцепты
$st r= str_replace("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Googlebot", $request_url[$i]);
fwrite($Handle,$str);
}
}

fclose($Handle);

// конец
echo "<hr><br>";
//********************************************************************

24 строку примера set_hook_on_begin_transaction.php изменил на $btn->click_by_inner_text("Войти",false)
Проверьте у себя пожалуйста, может что не так сделал.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 15 окт 2015, 16:42

Попробовал ваш код, но видать чего-то не хватает, программа его отрабатывает и останавливается.
Тут либо для проверки весь код и требуемый результат, чтобы я мог дать на анализ его программистам.

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Баги в классе $raw

Сообщение k907 » 16 окт 2015, 13:24

Support писал(а):Попробовал ваш код, но видать чего-то не хватает, программа его отрабатывает и останавливается.
Тут либо для проверки весь код и требуемый результат, чтобы я мог дать на анализ его программистам.
Задача, проверить работоспособность $raw->set_hook_on_begin_transaction("")
Требуемый результат, измененный user agent.
Скрипт во вложении.

В итоге, после запуска скрипта начинают плодится окна консоли и HE виснет, fiddler показывает, что заголовки запроса не изменились.
Вложения
Screenshot_3.png
Screenshot_3.png (223.3 КБ) 681 просмотр
Screenshot_2.png
Screenshot_2.png (223.52 КБ) 681 просмотр
test.rar
(917 байт) 76 скачиваний
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 16 окт 2015, 13:57

Я вас понял, думал что-то другое подразумевалось в работе этого скрипта.
Окна консоли плодятся, но у меня ничего не виснет и скрипт завершает свою работу.
По функционалу объекта $raw, я информацию уже передал разработчикам.
Вам, спасибо за предоставленную информацию.

goodday
Сообщения: 5
Зарегистрирован: 18 окт 2015, 15:43

Re: Баги в классе $raw

Сообщение goodday » 18 окт 2015, 15:49

Аналогичные проблемы с подменой данных через $raw->set_hook_on_begin_transaction
Вылезают консольные окна, после чего копия виснит. И соответственно ничего не меняется, иногда даже часть трафика не сохраняется.
А жаль, крайне важная штука

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Баги в классе $raw

Сообщение rycost » 20 окт 2015, 22:02

Присоединяюсь к данной теме, меня так же интересует работоспособная функция $raw->set_hook_on_begin_transaction

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 21 окт 2015, 10:30

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

goodday
Сообщения: 5
Зарегистрирован: 18 окт 2015, 15:43

Re: Баги в классе $raw

Сообщение goodday » 03 мар 2016, 01:36

Никаких продвижений не наблюдается?

goodday
Сообщения: 5
Зарегистрирован: 18 окт 2015, 15:43

Re: Баги в классе $raw

Сообщение goodday » 03 апр 2016, 13:06

Скажите, пожалуйста, будет ли вестись работа над данным классом, или решили окончательно забить на него?

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Баги в классе $raw

Сообщение Support » 04 апр 2016, 10:41

goodday писал(а):Скажите, пожалуйста, будет ли вестись работа над данным классом, или решили окончательно забить на него?
Добрый день. Работа над этим классом ведется, просто грипп выбивает из колеи разработчиков.

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Баги в классе $raw

Сообщение huligun » 05 апр 2016, 11:00

Да их походу он и не отпускает.
Функция заявлена с версии 4.0.10 а досих пор нету вразумительного мануала как с ней работать.
Вот простой пример есть index.html к которому подключен внешний style.css файл
В index.html <div class="blabla"></div>
В style.css .blabla { width: 200px;height: 300px;background-color: #036; }
Нужно поменять цвет блока blabla перед выдачей в браузер.
Для выдачи в панель отладки делается элементарно:
for ($i=0;$i<100;$i++) {
if ($raw->get_last_readed($i)=="false")
break;
if(!empty($raw->get_last_readed($i))) {
$readed=$raw->get_last_readed($i);
$readed=str_replace("background-color: #036;" ,"background-color: #000;" ,$readed);
}}
И все меняется, но как это сделать это через set_hook_on_begin_transaction я х.з.
Понятно что функция вызывает пхп скрипт но про то как он работает НЕТ НИЧЕГО !!!
Написано лишь (Тоже самое, установив хук на ответы браузера, можно модифицировать их так, чтобы перед приемом в браузер у вас было то что вы хотите в нем видеть или не хотите …
Эта часть кончено требует знаний RFC протоколов ну или экспрементирования)
Как, по мне она экстрасенса требует ))))
Ковырнул скрипт примера который плодит кучу консолей, но так и не работает т.е. выполняет х.з. что, но лого точно не прячет.
Что за непонятные файлы begin_transaction_hook1.in, begin_transaction_hook1.in1, begin_transaction_hook1.out1
Где про них написано ?
Алгоритм представляется таким
Крутим массив урлов до момента style.css
ставим хук
И как в файле хука получить модифицировать и пердать $readed=$raw->get_last_readed($i);

Ответить