2015-04-06 79 views
-1

下面的代碼我有3個功能,當我運行我的example2網站它進入我的網站就像提供用戶名和密碼後。example2工作正常。但是在example1網站上,當我執行這個程序時,它進入了我以前的頁面,它應該不會影響用戶名和密碼。在這兩種情況下,我通過運行httpfox軟件獲取用戶名&密碼加上其他數據作爲$ data變量。我認爲,在例2本軟件顯示像「用戶名的所有信息= YYYYY &密碼= YYYYYYYYY &記得= YES &提交=登錄&行動= do_login & URL = HTTP%3A%2F%2Fwww.hackforums.net%2Findex.php & my_post_key = 876890b33b8b9260ba3acfc1998b1594'但在example1中,它只顯示'username = XXXXX & password = XXXXXXXXXXXXXXXXXXXXX' 任何人都可以知道答案嗎?這將是很大的幫助!如何讀取網站的數據併發布到另一個網站的數據庫,如mysql

另一個問題是它不適用於任何'https'網站。你知道怎麼做嗎。非常感謝!

<html> 
 
<body> 
 
    
 
<?php 
 
     
 
     
 
\t login("http://www.example1.com:9080/mrportal/loginaction", "username=XXXXX&password=XXXXXXXXXXXXXXXXXXXXX") ; 
 
echo grabpage("http://www.example1.com:9080/mrportal/"); 
 

 
login("http://www.example2.net/member.php", "username=YYYYY&password=YYYYYYYYY&remember=yes&submit=Login&action=do_login&url=http%3A%2F%2Fwww.hackforums.net%2Findex.php&my_post_key=876890b33b8b9260ba3acfc1998b1594") ; 
 
echo grabpage("http://www.example2.net) 
 

 
\t function login($url, $data) 
 
\t { 
 
\t $fp = fopen("cookie.txt","w"); 
 
\t fclose($fp); 
 
\t $login = curl_init(); 
 
\t curl_setopt($login, CURLOPT_COOKIEJAR,"cookie.txt"); 
 
\t curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt"); 
 
\t curl_setopt($login,CURLOPT_TIMEOUT,40000); 
 
\t curl_setopt($login,CURLOPT_RETURNTRANSFER,true); 
 
\t curl_setopt($login,CURLOPT_URL, $url); 
 
\t curl_setopt($login,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
 
\t curl_setopt($login,CURLOPT_FOLLOWLOCATION, TRUE); 
 
\t curl_setopt($login,CURLOPT_POST, TRUE); 
 
\t curl_setopt($login,CURLOPT_POSTFIELDS, $data); 
 
\t ob_start(); 
 
\t return curl_exec($login); 
 
\t ob_end_clean(); 
 
\t curl_close($login); 
 
\t unset($login); 
 
\t } 
 
\t 
 
\t function grabpage($site) 
 
\t { 
 
\t $ch = curl_init(); 
 
\t curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
 
\t curl_setopt($ch,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
 
\t curl_setopt($ch,CURLOPT_TIMEOUT,400); 
 
\t curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
 
\t curl_setopt($ch,CURLOPT_URL, $site); 
 
\t ob_start(); 
 
\t return curl_exec($ch); 
 
\t ob_end_clean(); 
 
\t curl_close($ch); 
 
\t } 
 
    
 
    
 
    function post_data($site, $data) 
 
\t { 
 
\t 
 
\t $datapost = curl_init(); 
 
\t $headers = array("Expect:"); 
 
\t curl_setopt($datapost,CURLOPT_URL, $site); 
 
\t curl_setopt($datapost,CURLOPT_TIMEOUT,40000); \t 
 
\t curl_setopt($datapost, CURLOPT_HEADER, TRUE); 
 
\t curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers); 
 
\t curl_setopt($datapost,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
 
\t curl_setopt($datapost,CURLOPT_POST, TRUE); 
 
\t curl_setopt($datapost,CURLOPT_POSTFIELDS, $data); 
 
\t curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt"); 
 
\t ob_start(); 
 
\t return curl_exec($datapost); 
 
\t ob_end_clean(); 
 
\t curl_close($datapost); 
 
\t unset($datapost); 
 
\t } 
 
?> 
 

 
</body> 
 
</html>

回答

0

嘗試使用:

curl_setopt($login, CURLOPT_SSL_VERIFYPEER, false); 

在代碼中跳過的https地址SSL驗證。

+0

感謝您的幫助,但不幸的是它沒有奏效。放完線後,我嘗試了很多方法,但沒有改變。當我嘗試回聲抓取頁(「http://www.example1.com:9080/mrportal/」) – 2015-04-06 13:25:33

+0

感謝您的幫助,但不幸的是它沒有工作。放完線後,我嘗試了很多方法,但沒有改變。當我嘗試像回聲抓取頁面(「http://www.example1.com:9080/mrportal/」),則會出現上一頁。如果我嘗試回聲抓取頁面(「http://www.example1.com:9080/mrportal」),則出現空白頁面,如果嘗試回聲抓取頁面(「http://www.example1.com:9080/mrportal/loginaction」)然後說錯誤'404服務器錯誤請求的網址未找到' – 2015-04-06 13:33:01

相關問題