понимаю что тема изъедена, но все же: скрипт: <? include("const.php"); global $PROXY; $parseURL = parse_url($LOGINURL); $ch = curl_init(); curl_setopt($ch, CURLOPT_PROXY,$PROXY); curl_setopt($ch, CURLOPT_COOKIEJAR, "/cookie.cookie"); curl_setopt($ch, CURLOPT_URL,"адрес сайта"); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "login=1&username=______&password=1234567&autologin=on"); ob_start(); curl_exec ($ch); ob_end_clean(); curl_close ($ch); $ch = curl_init(); curl_setopt($ch, CURLOPT_PROXY,$PROXY); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_COOKIEFILE, "/cookie.cookie"); curl_setopt($ch, CURLOPT_URL,"http://____________/bb/privmsg.php?mode=post&u=9349"); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt ($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ""); $result = curl_exec ($ch); echo $result; curl_close ($ch); ?> на локальном хосте все работает,т.е. обращется к сайту авторизуется - сохраняет куки - потом используя их работает. при заливании на сервер(чтоб запускать удаленно) не видит куки-файл. что может быть???
тоже самое вот header: HTTP/1.1 302 Found Date: Wed, 17 Jan 2007 12:57:59 GMT Content-Type: text/html; charset=windows-1251 Connection: close Server: Apache Set-Cookie: bbc_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bi%3A-1%3B%7D; expires=Thu, 17-Jan-2008 12:57:59 GMT; path=/; domain=.___.com Set-Cookie: bbc_sid=2affcab73c2ca8aa64e119229064b9cf; path=/; domain=.____.com Vary: Accept-Encoding,User-Agent Location: http://_______.com/bb/login.php?redirec ... 229064b9cf отправляет на редирект, т.е. на авторизацию
Тогда примерно так: PHP: <?php $tmp = explode( "\r\n", $headers ); foreach( $tmp as $header ) { if( subStr( $header, 0, 11 ) == 'Set-Cookie:' ) { $cookie = explode( ';', subStr( $header, 12 ), 2 ); list( $name, $value ) = explode( '=', $cookie[0] ); $cookies[ $name ] = urldecode( $value ); } } ?>
на удаленной машине(где не работает): libcurl/7.12.1 OpenSSL/0.9.7c zlib/1.1.4 на локальной(где все ок): libcurl/7.14.0 OpenSSL/0.9.6m zlib/1.2.3 Вопрос: отличие версии curl может влиять на работу CURLOPT_COOKIEFILE ???
Проблема решена: на хостинге создана папка темповая с правами 777 все кукисы записываются и счтываются оттуда. Иногда правда прокси тормозит, но я думаю дело в прокси. (Отключаешь все ок). Вопрос другой теперь возник: при долгой работе скрипта хостинг его обрубает. я так понимаю, что в php.ini задано макс время работы скрипта. Как обойти данную проблему??? (чтоб скрипт работал независимо от настроек хостинга(временных))
Чувак. сравни свой код с моим: PHP: <?php $cookies = array(); preg_match_all("|Set-Cookie:[\s]*([a-z0-9_-]+=[^\n;]+);|i",$header,$cookies); return isset($cookies[1]) ? $cookies[1] : false; ?> зачем так усложнять?