Авторизация на сайте

dream1kir

Новичок
Добрый день. Есть тестовый сайт http://demo.com.roseltorg.ru логин demos пароль 12345678.
Нужно авторизоваться через php. Вот мой код:

<?php
$options = array(
"action"=>"Authentication",
"method"=>"login",
"data"=>array("demos","12345678","lock_ip"=>"on"),
"type"=>"rpc"/*,
"tid"=>144,
"token"=>"3a730fe12833495f4bd23e8fe4bdeb48"*/
);

$request = new HttpRequest('https://demo.com.roseltorg.ru/index.php?rpctype=direct&module=default', HttpRequest::METH_POST);
$request->setOptions($options);
$result = $request->send();

echo "<pre>"; print_r($result); echo "</pre>";
?>


выдает ошибку Warning: HttpRequest::setMethod() expects parameter 1 to be long, string given in test.php on line 12
В документации сказано "Авторизация осуществляется отдельным запросом с указанием значений контроллера «Authentication» и метода «login». " и приведен пример

Пример запроса на авторизацию:
$request = array(
"action"=>"Authentication",
"method"=>"login",
"data"=>array("demo","1234567","lock_ip"=>"on"),
"type"=>"rpc",
"tid"=>144,
"token"=>"3a730fe12833495f4bd23e8fe4bdeb48");


, где • ид_транзакции: числовое значение, уникальное в рамках текущего HTTP POST запроса;
• токен: текстовое значение, равное значению куки etpsid, установленной сервером. В случае, если запрос осуществляется к функции, доступ к которой возможен для неавторизированных пользователей (например авторизация), параметр можно не указывать или указывать пустым.
Что я сделал не так? Помогите пожалуйста.
 

dream1kir

Новичок

dream1kir

Новичок
$options = array(
"method"=>"login",
);
Вы предлагаете убрать эту строку? Пробовал. Да, Warning исчезнет, но авторизация всё равно не происходит.
Полагаю, что при удачной авторизации, в теле ответа должно быть что то типа ..."success":true
 

WMix

герр M:)ller
Партнер клуба
$request->setOptions(array("method"=>"login"));
вызывает $request->setMethod("login")
 

artoodetoo

великий и ужасный
"login" это строка. константы, о которых тебе подсказали, целого типа.
Warning: HttpRequest::setMethod() expects parameter 1 to be long, string given

нет никаких мыслей?
 

dream1kir

Новичок
artoodetoo

Спасибо, теперь понятно что надо передаватьHttpRequest::setMethod ( int $request_method ), но в примере (в документации для подключения) написано :
$request = array(
"action"=>"Authentication",
"method"=>"login"...

Означает ли это, что пример не рабочий и не корректный?
 
Сверху