title
Description
Body
Вот что мне пишет CURL
Warning: curl_setopt(): You must pass either an object or an array with the CURLOPT_HTTPHEADER, CURLOPT_QUOTE, CURLOPT_HTTP200ALIASES and CURLOPT_POSTQUOTE arguments ...
Мне нужно послать на сайт cookies методом POST c с передачей нескольких http заголовков.
Неактивен
|
|
Я плохо знаю curl этот код может быть неверным.
Неактивен
Curl я разобрался
Теперь ещё один вопрос как сделать пороще данные коды
|
|
|
|
А то чёто больно сильно намутано.
Отредактировано WapStyle (2010.10.09 19:42)
Неактивен
WapStyle, технически верно, но в принципе, делать нужно не так. Кука передается в заголовках, как юзерагент, скажем, ты же не хранишь юзерагент в файле, верно? Так и передавай кукисы напрямую в заголовках. Т.е. в массив $headers2 добавь элемент типа $headers2[] = 'Cookie: var=value'; и все.
Неактивен
В чем может быть проблема пробую через curl граббер сделать он не пашет точнее на денвере работает все хорошо загружает картинки нормально а вот когда на хосте не работает выводиться пустое изображение обясните пожалуйста почиму?
$head = array('Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5',
'Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1',
'Accept_encoding: identity',
'Accept_language: en-us,en;q=0.5',
'Connection: close',
'Cache-Control: no-store, no-cache, must-revalidate',
'Keep_alive: 300',
'Expires: Thu, 01 Jan 1970 00:00:01 GMT');
//http://on-porn.ru/fotoload/'.$_SERVER['QUERY_STRING']
$ch = curl_init('http://on-porn.ru/fotoload/'.$_SERVER['QUERY_STRING']);
curl_setopt($ch, CURLOPT_USERAGENT,trim($br[rand(1,4)]));
curl_setopt($ch, CURLOPT_REFERER,'http://on-porn.ru');
curl_setopt($ch, CURLOPT_HTTPHEADER, $head );
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
$f = curl_exec($ch);
curl_close($ch);
header('content-type: image/jpeg');
echo $f;
Спасибо Огромное
Чтото серавно не работает вот что выдало на хосте HTTP/1.1 302 Found Server: nginx/0.8.53 Date: Fri, 05 Nov 2010 13:31:14 GMT Content-Type: text/html; charset=UTF-8 Connection: close X-Powered-By: PHP/5.3.3 Set-Cookie: sos=1908a061d1c220fe7b8017f013f46357; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: /foto/Africans/001.jpeg Content-Length: 0
и на денвере много ээроглифов что может быть опять не так
все так. нужно отлавливать эту переадресацию. CURL не поддерживает относительные пути (спецификация HTTP 1.1 их не позволяет). так что руками обрабатывать заголовок Location
Неактивен
а как его руками обработать? просто через другие функции не получаеться выкидывает на сайт который граблю и пишит с компа запрещено
Morgan, если бы там бы указан полный путь с http:// и т.д. то да, как раз сработал бы CURLOPT_FOLLOWLOCATION, а так, даже в камментах к curl_setopt на php.net много постов посвящено костылям как с такой переадресацией работать
Неактивен
Спасибо за помощь парни много полезного узнал!
Вот теперь такое вылезло что это может быть?
HTTP/1.1 200 OK Server: nginx/0.8.53 Date: Fri, 05 Nov 2010 14:50:33 GMT Content-Type: image/jpeg Content-Length: 9528 Last-Modified: Thu, 18 Jun 2009 12:03:14 GMT Connection: close Accept-Ranges: bytes ����JFIFHH��C ��C
вобщем опять тоже самое на денвере работает на хосте нет
$br = array(
'HTCP3300-Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)',
'Panasonic-GAD87/A22 UP.Link/1.1',
'Panasonic-VS6/1.0/RP1 Profile/MIDP-2.0 Configuration/CLDC-1.1',
'LGE-VX8300/1.0 UP.Browser/6.2.3.2 (GUI) MMP/2.0'
);
$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
$header[] = 'Cache-Control: max-age=0';
$header[] = 'Connection: close';
$header[] = 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1';
$header[] = 'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8';
$header[] = 'Pragma: no-cache';
/// $url = 'http://on-porn.ru/fotoload/'.$_SERVER['QUERY_STRING'];
$ch = curl_init('http://on-porn.ru/foto/'.$d.'/'.$f);
curl_setopt($ch, CURLOPT_USERAGENT,trim($br[rand(1,4)]));
curl_setopt($ch, CURLOPT_REFERER,'http://on-porn.ru');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
$f = curl_exec($ch);
curl_close($ch);
//header('Content-type: image/jpeg');
echo $f;
и вот еще что выдает HTTP/1.1 403 Forbidden Server: nginx/0.8.53 Date: Fri, 05 Nov 2010 15:28:40 GMT Content-Type: text/html; charset=iso-8859-1 Connection: keep-alive Content-Length: 208
чтото запрещено а незнаю что
Огромное всем спасибо разобрался надо было исключить все header
a как в header прописать видео 3gp ? прописываю так header('Content-Type: video/3gpp'); не работает
почему то я ее вот так прописал не работало
$b = curl_exec($ch);
curl_close($ch);
header("Content-Type: video/3gpp");
header ("Content-Disposition: attachment; filename=$f");
echo curl_exec($ch);
curl_close($ch);
а вот так заработало нормально
header("Content-Type: video/3gpp");
header ("Content-Disposition: attachment; filename=$f");
echo curl_exec($ch);
curl_close($ch);
Вобщем такая проблема теперь помогите плиз наведите на путь истеный)
<img name="captcha_img_381" id="captcha_img_381" src="http://ncc-volga.ru/bitrix/tools/captcha.php?captcha_sid=c4ea3c47fa09b71fc2fee1a863bb6c61"/>
^^как можно ограбить такую капчу^^ прописываю полный путь до картинке и серавно не роботает
что из этого нужно получить? сессию?
|
|
Неактивен
Нет дело в том что картинка не загружаеться почему то, можешь помочь?
вот код капча выдает ошибку одинраз отправляет норм последущие разы не работает
|
|
Неактивен