Я пытаюсь войти в веб-сайт, используя PHP CURL. Все это отлично работает на веб-сайтах, которые не требуют куки-файлов и сеансов, но, похоже, они не работают с веб-сайтами, которые запрашивают вас, вот мой код. Я нашел этот код здесь. Любая помощь по этому вопросу была бы одобрена
Код
<?php
// 1-Получить первую страницу входа 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; ?>
http://signin.ebay.com/aw-cgi/eBayISAPI.dll не только ожидает имя пользователя и пароль как данные для публикации, но и другие параметры, возможно, вы не учли это. Используйте вкладку Net на Firebug, чтобы просмотреть переданные параметры и попытайтесь их дублировать.
Возможно, вам нужно больше вариантов:
// 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
.