CURL - cookie не включен / сеанс истек - PullRequest
0 голосов
/ 12 декабря 2011

Я пытаюсь зайти на сайт используя PHP CURL. Все это прекрасно работает на веб-сайтах, которые не требуют файлов cookie и сеансов, но, похоже, не работает с веб-сайтами, которые запрашивают вас, поэтому вот мой код. Я нашел этот код более здесь любая помощь в этом будет признательна, спасибо
Код

<?php

// 1-Get First Login Page http://signin.ebay.com/aw-cgi/eBayISAPI.dll?SignIn

$ebay_user_id = "username"; // Please set your Ebay ID
$ebay_user_password = "password"; // Please set your Ebay Password
$cookie_file_path = "cookie.txt"; // Please set your Cookie File path

$LOGINURL = "__";
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$LOGINURL);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$result = curl_exec ($ch);
//    curl_close ($ch);

// 2- Post Login Data to Page http://signin.ebay.com/aw-cgi/eBayISAPI.dll

$LOGINURL = "url";
$POSTFIELDS = 'postfiends';
$reffer = "url";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$LOGINURL);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $reffer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$result = curl_exec ($ch);
//    curl_close ($ch); 
print   $result;    

 ?>

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Возможно, вам понадобятся дополнительные параметры:

// define some HTTP headers 
$headers[] = "Accept: */*";
$headers[] = "Connection: Keep-Alive";
$headers[] = "Content-type: application/x-www-form-urlencoded;charset=UTF-8";

// to GET add
curl_setopt($ch, CURLOPT_HTTPHEADER,  $headers);
curl_setopt($ch, CURLOPT_HEADER,  0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        

// to POST add
curl_setopt($ch, CURLOPT_HTTPHEADER,  $headers);
curl_setopt($ch, CURLOPT_HEADER,  1);

// check for errors before close
$result = curl_exec($ch);
if ($result === false)
{
    echo curl_error($ch);
}
curl_close($ch);

Убедитесь, что ваш $cookie_file_path файл доступен для записи (если Linux).Играйте с CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER.

0 голосов
/ 12 декабря 2011

http://signin.ebay.com/aw-cgi/eBayISAPI.dll не только ожидает имя пользователя и пароль в качестве данных поста, но и другие параметры, возможно, вы не учли это.Используйте вкладку Net на firebug, чтобы увидеть переданные параметры, и попробуйте скопировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...