Я пытаюсь создать PHP-скрипт, который войдет на веб-сайт, используя CURLOPT_RETURNTRANSFER, чтобы вернуть информацию о URL-адресе после входа в систему, а затем проанализировать эти данные для конкретных совпадений. Я хотел бы знать, есть ли способ обновить данные returntransfer без необходимости выхода из системы и входа в сайт? На данный момент я должен выйти из системы полностью, а затем войти, чтобы получить новую http-строку в returntransfer. Я новичок в PHP и cURL, поэтому, пожалуйста, простите меня, если этот вопрос нечеткий. Ниже приведен пример кода, как вы можете видеть, на основе флага код будет продолжать цикл до тех пор, пока флаг не будет установлен в true.cURL и обновление URL после POST/Login
<?php
if(isset($_POST['userName']))
{
$cookie_file_path = "cookie.txt";
$data = array('Username' => $_POST['userName'],'Password' =>$_POST['userPassword']);
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7";
$reffer = "https://someurl/Login.aspx?action=login";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://someurl/Login.aspx?action=login");
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_fie_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_REFERER,$reffer);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$html= curl_exec($ch);
echo $html;
curl_close($ch);
$flagOfFound=0;
do {
//process the message
//......
//set $flagOfFound = true of there is match
//else
//refresh message/http returntransfer while still logged in
}
while ($flagOfFound == 0);
}
?>
Спасибо за ответ Федерико. Если я не буду хранить файлы cookie, когда я обновляю страницу .asp, я не выйду из системы автоматически и, следовательно, вам придется снова войти в систему? То, что этот сценарий действительно пытается сделать, - это проанализировать данные HTTP и найти определенные URL-адреса, которые затем выберете для пользователя, который вошел в систему. –