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