2015-09-19 5 views
0

Код выглядит нормально, если вы вставляете неверные данные для входа, отображается «неверно», но если вы вставляете правильную информацию, cURL возвращает страницу входа, а не домашнюю страницу (с друзей и росписи).Войти в Facebook (и другие серверы) с помощью cURL

Почему это происходит, чего не хватает?

Код:

$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

Важно понимать процесс входа в систему. Я вижу, что вы отправляете много файлов cookie с запросом на завивание, но я думаю, что эти куки уже не живы.

Вам нужно сделать два свертыванию запросов:

  1. сделать завиток запроса на фб странице входа с правыми учетными
  2. Вы получаете ответ с большим количеством Set-Cookie заголовков
  3. Сохранить все данные из этого заголовка и набор этих данных для второго запроса завитка на facebook странице
  4. Вы просите с этим печеньем данными будет обрабатываться как от зарегистрированного пользователя
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>"); 
}