2013-03-04 3 views
0

Я пытаюсь войти на удаленный сайт с использованием CURL, но я просто продолжаю получать сообщение об ошибке, срок действия которого истек, пожалуйста, заново зарегистрируйтесь.PHP Curl - Сессия истекло

$username="xxxxxx"; 
$password="yyyyyyyy"; 
$url="https://remotesite.com/my.activation.php3"; 
$cookie="cookie.txt"; 

$postdata = "username=".$username."&password=".$password; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 

// check for errors before close 
$result = curl_exec($ch); 
echo $result; 
curl_close($ch); 

Файл cookie можно записать и что-то написано на нем. Любые идеи, что я могу попытаться сохранить сессию?

+1

Попробуйте включить 'CURLOPT_VERBOSE'? Без фактического текста сообщения об ошибке или знания сайта, на который вы отправляете сообщения, помощь в этом может оказаться сложной задачей. –

+0

Я могу показать вам сайт с его общедоступной просто не предоставлять мои данные для входа и т. Д.: P http://bit.ly/14loB1I – Tenatious

+0

Думайте, это может быть потому, что в файле cookie.txt два файла cookie удаляются : FALSE \t/\t \t ИСТИНА 1330888968 \t \t MRHIntranetSession удален есть ли способ для меня, чтобы изменить это, так что не получает удален? – Tenatious

ответ

1

Убедитесь, что вы используете correct option для CURLOPT_COOKIE*.

CURLOPT_COOKIEJAR - имя файла для сохранения всех внутренних файлов cookie, когда ручка закрыта, например. после вызова curl_close.

CURLOPT_COOKIE - Содержимое заголовка «Cookie:» , которое будет использоваться в HTTP-запросе. Обратите внимание, что несколько куки разделены точкой с запятой с последующим пробелом (например, «фрукты = яблоко, цвет = красный»)

CURLOPT_COOKIEFILE - The имя файла, содержащего данные печенья. Файл cookie может быть в формате Netscape или просто в заголовках HTTP-стиля, сбрасываемых в файл. Если имя является пустой строкой, cookie не загружается, но обработка файлов cookie по-прежнему включена.


Кроме того, позволяет CURLOPT_VERBOSE могут помочь при отладке завиток.

+0

Прошу прощения. Действительно новичок в этом. Смутно относительно того, что я должен делать, чтобы заставить это работать :( – Tenatious

+0

Каково содержимое вашего файла 'cookies.txt'? Если это фактические данные cookie, вы должны использовать' CURLOPT_COOKIEFILE' вместо 'CURLOPT_COOKIEJAR'. Если вам нужно нажать на домашнюю страницу, возьмите cookie, а затем перенесите файл cookie вперед, оставьте его как 'CURLOPT_COOKIEJAR'. –

+0

# Файл cookie HTTP Netscape # http://curl.haxx.se/rfc/cookie_spec.html # Этот файл был сгенерирован Libcurl! Редактирование на свой страх и риск. remotesite.com \t \t FALSE/TRUE, \t \t uRoamTestCookie TEST remotesite.com \t \t FALSE/\t T RUE \t \t 1330892310 MRHIntranetSession \t удален remotesite.com \t \t FALSE/TRUE, \t \t \t 1330892310 MRHIntranetSpecial \t удален RemoteSite.ком \t \t FALSE/TRUE, \t \t MRHSession 84b5a408f4e360f46865e71e1fca9e5b remotesite.com \t \t FALSE/TRUE, \t \t ВХост стандарт – Tenatious

Смежные вопросы