Вы не зашли.
Главная » PHP » Ошибка. Curl
#1. WapStyle Off (3)
Участник
2010.10.09 19:07
Вот что мне пишет 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 заголовков.
#2. Gemorroj Off (107)
Administrator
2010.10.09 19:07
код может таки стоит написать?
#3. WapStyle Off (3)
Участник
2010.10.09 20:08
Код:
$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 этот код может быть неверным.
#4. Gemorroj Off (107)
Administrator
2010.10.09 20:08
$header2 должен быть массивом.
#5. WapStyle Off (3)
Участник
2010.10.09 21:09
А можно просто иправленный код  )) плз
Добавлено спустя   4 минуты  19 секунд:
по мне Curl как первоклашке php big_smile
#6. WapStyle Off (3)
Участник
2010.10.09 23:11
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)
#7. Gemorroj Off (107)
Administrator
2010.10.10 10:10
смысл кода сходу не улавливаю. а так в принципе, оформи грамотно и сойдет.
#8. WapStyle Off (3)
Участник
2010.10.10 11:11
Вот вприципе что получилось

http://test.openserv.ru/?search=rammstein

Поисковик полность на Curl

Вот из-за кода который выше время выполнения скрипта 1.2968
#9. WapStyle Off (3)
Участник
2010.10.10 11:11
Кстати верно ли?

Получение куков
Код:
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
Отправка куков
Код:
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
#10. Gemorroj Off (107)
Administrator
2010.10.10 12:12
WapStyle, технически верно, но в принципе, делать нужно не так. Кука передается в заголовках, как юзерагент, скажем, ты же не хранишь юзерагент в файле, верно? Так и передавай кукисы напрямую в заголовках. Т.е. в массив $headers2 добавь элемент типа $headers2[] = 'Cookie: var=value'; и все.
#11. WapStyle Off (3)
Участник
2010.10.11 08:08
Спс за совет, но я уш так оставлю. 300 байт на ервере найду для файла cookie.tx big_smile
#12. Gemorroj Off (107)
Administrator
2010.10.11 10:10
Код:
file_put_contents('hello.txt', 'Hello, world');
$data = file_get_contents('hello.txt');
echo $data;
#13. WapStyle Off (3)
Участник
2010.10.13 15:03
Намёка не понял big_smile Если ты про то что его могут слить, то к нему доступ закрыт через htaccess
#14. Gemorroj Off (107)
Administrator
2010.10.13 18:06
к тому что подход через жопу.
#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;
#16. Gemorroj Off (107)
Administrator
2010.11.05 16:04
убери 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
и на денвере много ээроглифов что может быть опять не так
#19. Gemorroj Off (107)
Administrator
2010.11.05 16:04
все так. нужно отлавливать эту переадресацию. CURL не поддерживает относительные пути (спецификация HTTP 1.1 их не позволяет). так что руками обрабатывать заголовок Location
#20. lexa
Гость
2010.11.05 17:05
а как его руками обработать? просто через другие функции не получаеться выкидывает на сайт который граблю и пишит с компа запрещено
#21. Morgan Off (10)
Участник
2010.11.05 17:05
#20, preg_match();
#19, а как же CURLOPT_FOLLOWLOCATION?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#22. Gemorroj Off (107)
Administrator
2010.11.05 17:05
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
#25. Gemorroj Off (107)
Administrator
2010.11.05 18:06
curl_setopt($ch, CURLOPT_HEADER, true);
поставь в false обратно
#26. lexa
Гость
2010.11.05 18:06
вобщем опять тоже самое на денвере работает на хосте нетsad
$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'); не работает
#30. Gemorroj Off (107)
Administrator
2010.11.05 21:09
именно так, что не работает?
#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"/>
  ^^как можно ограбить такую капчу^^ прописываю полный путь до картинке и серавно не роботает
#33. Gemorroj Off (107)
Administrator
2010.11.07 13:01
что из этого нужно получить? сессию?
Код:
$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
Нет дело в том что картинка не загружаеться почему то, можешь помочь?
#35. Gemorroj Off (107)
Administrator
2010.11.12 13:01
твой код я сам выдумать должен чтоли?
#36. shift Off (0)
Участник
2010.11.14 00:12
вот код капча выдает ошибку одинраз отправляет норм последущие разы не работает

Код:
$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;
#37. shift Off (0)
Участник
2010.11.16 00:12
Что не кто не поможет проблему решить?
#38. Gemorroj Off (107)
Administrator
2010.11.16 10:10
1) это не курл
2) это не весь код
3) воспроизвести проблему не вышло
Страниц: 1 2 3 4 Все
Главная
WEB
PunBB Mod v0.6.2
0.033 s