PHP cUrl - автоматический вход на сайт без сохранения сессии - PullRequest
0 голосов
/ 21 января 2019

У меня мало опыта с cUrl. Я создаю бота, который автоматически авторизуется на сайте. Я использовал cUrl, чтобы сделать это. когда я запускаю свой скрипт, он успешно регистрирует меня (я получаю ответ «ОК»), но когда я перенаправляю на какую-то другую страницу, я выхожу из системы. Вот мой код:

<?php
$username="username";
$userpass="password";
$url="https://www.invertironline.com/User/DoLogin";
$cookie="cookie.txt";


$postdata = "username=".$username."&password=".$userpass."";

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; 
    x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, realpath($cookie));
curl_setopt ($ch, CURLOPT_COOKIEFILE, realpath($cookie));
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$headers  = array();

$headers[] = 'application/xhtml+voice+xml;version=1.2, application/x- 
xhtml+voice+xml;version=1.2, text/html, application/xml;q=0.9, 
application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, 
*/*;q=0.1';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF- 
8';
$headers[] = 'X-Requested-With: XMLHttpRequest';
$headers[] = 'Referer: https://www.invertironline.com/mercado/cotizaciones';
$headers[] = 'Origin: https://www.invertironline.com';
$headers[] = 'Host: www.invertironline.com';

curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch, CURLOPT_HEADER, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
header("Location: https://www.invertironline.com/mercado/cotizaciones");

вот дополнительная информация: если я создаю HTML-форму с именем пользователя и паролем с действием и отправляю ее, она входит в систему и возвращает следующий ответ:

{"result":"OK","redirect":"/MiCuenta/EstadoCuenta"}

и в случае неправильных учетных данных я получаю этот ответ:

{"result":"Error"}

поэтому, когда я использую curl, я получаю тот же ответ, но когда я пытаюсь перенаправить, я не вошел в систему (вероятно, сессия не сохранена) Я потратил 3 дня, пытаясь найти решение для этого, но все еще не могу его решить. Любая помощь будет высоко оценена

1 Ответ

0 голосов
/ 21 января 2019

посмотрите в файле cookie.txt. это должно показать в деталях, какая у вас проблема. если сеанс доступен, но нет ответа, пожалуйста, скажите мне, чтобы я мог узнать, как я могу помочь вам лучше, и если файл понятен, то в вашем коде cookie есть проблема на этапе cookie store.so, пожалуйста, проверьте cookie. TXT-файл и скажите мне, что вы найдете в нем.

...