2015-09-19 34 views
0

代码看起来不错,如果插入不正确的登录信息出现“不正确”,但是如果插入了正确的信息,cURL将返回登录页面,而不是主页(与朋友和壁画)。用cURL登录Facebook(以及其他服务器)

为什么会发生这种情况,缺少什么?

代码:

$login_email = 'YOUR MAIL'; 
 
$login_pass = 'YOUR PASS'; 
 
$ch = curl_init(); 
 
curl_setopt($ch, CURLOPT_URL, 'https://www.facebook.com/login.php'); 
 
curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login'); 
 
curl_setopt($ch, CURLOPT_POST, 1); 
 
curl_setopt($ch, CURLOPT_HEADER, 0); 
 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
 
curl_setopt($ch, CURLOPT_COOKIE, "fr=0DlGgNm7j7OSrxwX6.AWW7LPYiS5UCE2Hd72fGrJQiQLs.BVmtC5.sI.FX7.0.AWX65Dnb; lu=SAj6vCvJVQ5w62Kbyx2DPvEw; datr=n9CaVRge8gdmQM4fbYPCgerZ; locale=pt_BR; reg_fb_ref=https%3A%2F%2Fwww.facebook.com%2F%3Fstype%3Dlo%26jlou%3DAfe0qy59dIr6vAHnkp81bUe_fBoQZvzbSCC-DlC6PTUNZappnx7W6Mx8L1ujMMa_jNbUpui0M7_YUfiLiuGWWzrgnEQc9k1no4kFe50usSdB9A%26smuh%3D24564%26lh%3DAc9EK2ltZxJOphMY; reg_fb_gate=https%3A%2F%2Fwww.facebook.com%2F%3Fstype%3Dlo%26jlou%3DAfe0qy59dIr6vAHnkp81bUe_fBoQZvzbSCC-DlC6PTUNZappnx7W6Mx8L1ujMMa_jNbUpui0M7_YUfiLiuGWWzrgnEQc9k1no4kFe50usSdB9A%26smuh%3D24564%26lh%3DAc9EK2ltZxJOphMY; wd=1708x436; dpr=0.800000011920929"); 
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
 
curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com"); 
 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 
$page = curl_exec($ch) or die(curl_error($ch)); 
 

 
echo $page;

谢谢提前。

回答

0

重要的是了解登录过程。我看到你发送了很多与你的curl请求有关的cookie,但我认为这些cookies不存在。

你需要做两个卷曲请求:

  1. 你得到的响应与大量的Set-Cookie头
  2. 保存所有从这个头部的数据使用正确的凭证FB登录页面上的卷曲要求并将此数据的Facebook页面上第二卷曲要求
  3. 你这个饼干的数据请求将被从登录的用户处理
0
$login_email = 'your email'; 
$login_pass = 'your password'; 

//Simple cURL 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://m.facebook.com/login.php'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'charset_test=€,´,€,´,水,Д,Є&email=' . urlencode($login_email) . '&pass=' . urlencode($login_pass) . '&login=Login'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: utf-8', 
    'Accept-Language: en-us,en;q=0.7,bn-bd;q=0.3', 
    'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5')); 
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd() . '/mirazmac_cookie.txt'); // The cookie file 
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd() . '/mirazmac_cookie.txt'); // cookie jar 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windo`enter code here`ws; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
curl_setopt($ch, CURLOPT_REFERER, "http://m.facebook.com"); 
$fbMain = curl_exec($ch) or die(curl_error($ch)); 
//Blocking Direct Access to file 
if (eregi("fb.php", $_SERVER['PHP_SELF'])) { 
    die("<p><h2>Access Denied!</h2><h4>You don't have right permission to access this file directly.<br/>Contact MiraZ Mac for more information.</h4></p>"); 
} 
相关问题