Вы не зашли.
Вот что мне пишет 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 заголовков.
код может таки стоит написать?
Код:
$header2 = 'Cookie: remixsid='.$remixsid.';remixmid='.ID.'; remixemail='.urlencode(EMAIL).'; remixpass='.md5(PASS); |
|
$curl2 = curl_init(); |
curl_setopt($curl2, CURLOPT_URL, $url); |
curl_setopt($curl2, CURLOPT_HTTPHEADER, $header2); |
//curl_setopt($curl2, CURLOPT_HEADER, true); |
curl_setopt($curl2, CURLOPT_POST, true); |
curl_setopt($curl2, CURLOPT_TIMEOUT, 12); |
$data = curl_exec($curl2); |
curl_close($curl2); |
Я плохо знаю curl этот код может быть неверным.
$header2 должен быть массивом.
А можно просто иправленный код )) плз
Добавлено спустя 4 минуты 19 секунд: по мне Curl как первоклашке php
Curl я разобрался
Теперь ещё один вопрос как сделать пороще данные коды
Код:
for($i = $start; $i<$l; ++$i){ |
$a[$i][1] = substr($a[$i][1],0,stripos($a[$i][1],")")); |
$a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); |
$a1 = substr($a[$i][1],0,stripos($a[$i][1],",")); |
$a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); |
$a2 = substr($a[$i][1],0,stripos($a[$i][1],",")); |
$a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); |
$a3 = substr($a[$i][1],0,stripos($a[$i][1],",")); |
$a3 = substr($a3, 1 , strlen($a3)-2); |
} |
Код:
while(stripos($data,"operate(") !== false){ |
$i++; |
$a[$i][1] = substr($data, stripos($data,"operate(") + 8, 100); |
$data = substr($data, stripos($data,"operate(") + 50); |
$a[$i][2] = substr($data, stripos($data,'<b id="performer')); |
$a[$i][2] = substr($a[$i][2], stripos($a[$i][2],">")+1); |
$a[$i][3] = substr($a[$i][2], stripos($a[$i][2],"<")); |
$a[$i][2] = substr($a[$i][2], 0, stripos($a[$i][2],"<")); |
$a[$i][3] = substr($a[$i][3], stripos($a[$i][3],'<span id="title')); |
$a[$i][3] = substr($a[$i][3], stripos($a[$i][3],">")+1); |
if($a[$i][3][0] == '<')$a[$i][3] = substr($a[$i][3], stripos($a[$i][3],">")+1); |
$a[$i][4] = substr($a[$i][3], stripos($a[$i][3],"<")); |
$a[$i][3] = substr($a[$i][3], 0, stripos($a[$i][3],"<")); |
$a[$i][4] = substr($a[$i][4], stripos($a[$i][4],'<div class="duration">')+22); |
$a[$i][4] = substr($a[$i][4], 0, stripos($a[$i][4],"<")); |
} |
А то чёто больно сильно намутано.
Отредактировано WapStyle (2010.10.09 23:11)
смысл кода сходу не улавливаю. а так в принципе, оформи грамотно и сойдет.
Вот вприципе что получилось
http://test.openserv.ru/?search=rammstein
Поисковик полность на Curl
Вот из-за кода который выше время выполнения скрипта 1.2968
Кстати верно ли?
Получение куков
Код:
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); |
Отправка куков
Код:
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); |
WapStyle, технически верно, но в принципе, делать нужно не так. Кука передается в заголовках, как юзерагент, скажем, ты же не хранишь юзерагент в файле, верно? Так и передавай кукисы напрямую в заголовках. Т.е. в массив $headers2 добавь элемент типа $headers2[] = 'Cookie: var=value'; и все.
Спс за совет, но я уш так оставлю. 300 байт на ервере найду для файла cookie.tx
Код:
file_put_contents('hello.txt', 'Hello, world'); |
$data = file_get_contents('hello.txt'); |
echo $data; |
Намёка не понял
Если ты про то что его могут слить, то к нему доступ закрыт через htaccess
к тому что подход через жопу.
#15.
lexa
Гость
2010.11.05 15:03
В чем может быть проблема пробую через 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;
убери header('content-type: image/jpeg'); и замени curl_setopt($ch, CURLOPT_HEADER, false); на curl_setopt($ch, CURLOPT_HEADER, true);
посмотри что выдает
#17.
lexa
Гость
2010.11.05 16:04
Спасибо Огромное
#18.
lexa
Гость
2010.11.05 16:04
Чтото серавно не работает вот что выдало на хосте 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
#20.
lexa
Гость
2010.11.05 17:05
а как его руками обработать? просто через другие функции не получаеться выкидывает на сайт который граблю и пишит с компа запрещено
#20, preg_match();
#19, а как же CURLOPT_FOLLOWLOCATION?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
Morgan, если бы там бы указан полный путь с http:// и т.д. то да, как раз сработал бы CURLOPT_FOLLOWLOCATION, а так, даже в камментах к curl_setopt на php.net много постов посвящено костылям как с такой переадресацией работать
#23.
lexa
Гость
2010.11.05 17:05
Спасибо за помощь парни много полезного узнал!
#24.
lexa
Гость
2010.11.05 17:05
Вот теперь такое вылезло что это может быть?
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
curl_setopt($ch, CURLOPT_HEADER, true);
поставь в false обратно
#26.
lexa
Гость
2010.11.05 18:06
вобщем опять тоже самое на денвере работает на хосте нет
$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;
#27.
lexa
Гость
2010.11.05 18:06
и вот еще что выдает 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
чтото запрещено а незнаю что
#28.
lexa
Гость
2010.11.05 18:06
Огромное всем спасибо разобрался надо было исключить все header
#29.
lexa
Гость
2010.11.05 21:09
a как в header прописать видео 3gp ? прописываю так header('Content-Type: video/3gpp'); не работает
именно так, что не работает?
#31.
lexa
Гость
2010.11.05 21:09
почему то я ее вот так прописал не работало
$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);
#32.
lexa
Гость
2010.11.06 22:10
Вобщем такая проблема теперь помогите плиз наведите на путь истеный)
<img name="captcha_img_381" id="captcha_img_381" src="http://ncc-volga.ru/bitrix/tools/captcha.php?captcha_sid=c4ea3c47fa09b71fc2fee1a863bb6c61"/>
^^как можно ограбить такую капчу^^ прописываю полный путь до картинке и серавно не роботает
что из этого нужно получить? сессию?
Код:
$str = 'f<img name="captcha_img_381" id="captcha_img_381" src="http://ncc-volga.ru/bitrix/tools/captcha.php?captcha_sid=c4ea3c47fa09b71fc2fee1a863bb6c61"/>ff'; |
preg_match('/captcha_sid=([^"]+)/', $str, $arr); |
print_r($arr); |
#34.
Lexa
Гость
2010.11.12 11:11
Нет дело в том что картинка не загружаеться почему то, можешь помочь?
твой код я сам выдумать должен чтоли?
вот код капча выдает ошибку одинраз отправляет норм последущие разы не работает
Код:
$br = array( |
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)', |
'Opera/9.50 (Windows NT 5.1; U; ru)', |
'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1b3) Gecko/20090304 Firefox/3.1b3 ' |
); |
|
$browser = trim($br[array_rand($br)]); |
|
$host= "html.masyaka.ru"; |
$path="/servis/sms/index.php?".$_SERVER['QUERY_STRING']; |
$fp=fsockopen($host,80,$errno, $errstr,10); |
if(!$fp) { echo "$errstr ($errno)<br/>\n"; }else{ |
$data = "";$post=0; foreach($_POST as $key=>$value){ |
$post=1; $data.="&$key=$value";} if($data)$data=substr($data,1); |
if($post) $headers = "POST $path HTTP/1.0\r\n";else |
$headers = "GET $path HTTP/1.0\r\n"; |
$headers .= "Host: $host\r\n"; |
$headers .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n"; |
$headers .= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n"; |
$headers .= "Accept-Encoding: utf-8\r\n"; |
$headers .= "Accept-Language: ru, en;q=0.9\r\n"; |
$headers .= "Referer: html.masyaka.ru\r\n"; |
$headers .= "User-Agent: ".$browser."\r\n";// |
if($post){ $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; |
$headers .= "Content-Length: ".strlen ($data)."\r\n"; |
$headers .= "\r\n"; $headers .= $data;}else $headers.="\r\n"; |
@fwrite($fp, $headers); while($ifmod != "\r\n") $ifmod = @fgets($fp, 128); |
$ifmod = ''; while(!feof($fp)) $ifmod .= @fgets($fp, 4096); @fclose($fp); } |
|
|
################################################### |
################################################## |
$ifmod = str_replace('>',">\n",$ifmod); |
$ifmod = str_replace('<?xml version="1.0" encoding="utf-8"?>','',$ifmod); |
$ifmod = preg_replace('|<!DOCTYPE(.*?)<body(.*?)>|isu','',$ifmod); |
$ifmod = preg_replace('|<!--(.*?)-->|isu','',$ifmod); |
$ifmod = str_replace('<img src="/page/index?make','<img src="http://html.masyaka.ru/page/index?make',$ifmod); |
$ifmod = str_replace('index.php','send2.php',$ifmod); |
|
$ifmod = str_replace("<hr />\n",'',$ifmod); |
$ifmod = str_replace("\n\n","\n",$ifmod); |
$ifmod = str_replace('<form method="post" action="post.php?make=send">','<form method="post" action="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'">',$ifmod); |
$ifmod = preg_replace('|</form>(.*?)</html>|is','',$ifmod); |
$ifmod = str_replace('<img src="img/','<img src="http://html.masyaka.ru/servis/sms/img/',$ifmod); |
$ifmod = preg_replace('|<a href="(.+)/super/(.*?)>(.*?)</a>|isu','',$ifmod);// |
$ifmod = preg_replace('|<a href="send2.php?PHPSESSID(.*?)>(.*?)</a>|is','<a href="send2.php" title="">Отправить еще</a>',$ifmod);// |
$ifmod = str_replace('','',$ifmod); |
|
echo $ifmod; |
Что не кто не поможет проблему решить?
1) это не курл
2) это не весь код
3) воспроизвести проблему не вышло