2016-04-07 5 views
0

Я пытаюсь создать 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); 

    } 

?> 

ответ

0

без выхода из системы и снова войти в сайт

Только не держите/магазин какой-либо куки, когда вы делаете эти запросы.

Удалить эти строки:

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_fie_path); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 

это все.

+0

Спасибо за ответ Федерико. Если я не буду хранить файлы cookie, когда я обновляю страницу .asp, я не выйду из системы автоматически и, следовательно, вам придется снова войти в систему? То, что этот сценарий действительно пытается сделать, - это проанализировать данные HTTP и найти определенные URL-адреса, которые затем выберете для пользователя, который вошел в систему. –

Смежные вопросы