раньше я использовал curl но сейчас меня обнаружили! и в куках пишет This file was generated by libcurl! что я делаю не так!!!
На сколько я знаю curl это качалка для nix-ов... Причем здесь куки и то что тебя "обнаружили"(кстати кто?)? Наверное не только я чего-то в твоей мессаге не понял. Поясни если не трудно.
передавай хидер и все такое.. что может быть определено как буто ты сидишь под браузером.. тут все можш прочитать http://ru.php.net/manual/ru/ref.curl.php
$url="http://sait.ru/cat/1/"; $ch = curl_init ($url); $header[] = "GET /cat/1/ HTTP/1.1"; $header[] = "Accept: */*"; $header[] = "Referer: http://www.ya.ru"; $header[] = "Accept-Language: ru"; $header[] = "Accept-Encoding: gzip, deflate"; $header[] = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)"; $header[] = "Host: sait.ru"; $header[] = "Connection: Keep-Alive"; все равно не работает
сделал вот что в куки записывает # Netscape HTTP Cookie File # http://www.netscape.com/newsref/std/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. sait.ru FALSE / FALSE 0 PHPSESSID 75e81c126a718f157bf92c7cdcf8e29b
Я к тому свожу, что если бы топикстартер писал через сокеты, то никаких "This file was generated by libcurl" он бы не получал, ибо глубже бы знал "как это работает". Темболее подобная тема (формирование запросов) уже нираз подымалась в этом форуме. В своё время я тоже пользовался curl, до тех пор пока не сталкнулся с проблемой, которую через curl решить нельзя. Потратил несколько часов на изучение http запросов. Зато теперь радости полные штаны.
Это пример запроса на CURL: http://forum.antichat.ru/showthread.php?t=5795 (кстати, в доказательство, что я тоже CURL пользовался =) ) Пример Post Get через сокеты. PHP: function Get($server,$url,$cookie=null) { $q="GET $url HTTP/1.0\r\n"; $q.="Host: $server\r\n"; $q.="Cookie: $cookie\r\n"; $s=fsockopen($server,80); fputs($s,$q); while (!feof($s)) $page.=fgets($s); fclose($s); return $page; function Post($server,$url,$post,$cookie=null) { $q="POST $url HTTP/1.1\r\n". "Host: $server\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n". 'Accept:text/html, image/jpeg, image/png, text/*, image/*, */*'."\r\n". "Accept-Encoding: x-gzip, x-deflate, gzip\r\n". "Accept-Charset: windows-1251, utf-8;q=0.5, *; q=0.5\r\n". "Accept-Language:ru, en\r\n". "Keep-Alive: 300\r\n". "Proxy-Connection: keep-alive\r\n". "Cookie: $cookie \r\n" "Referer: $server \r\n". // "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: ".strlen($post)."\r\n". "\r\n". "$post\r\n"; $s=fsockopen($server,80); fputs($s,$q); while (!feof($s)) $page.=fgets($s); fclose($s); return $page; } http://lib.ru/WEBMASTER/rfc2068/ А вообще, для чистоты эксперемента, совутую научится пользоватся снифером.
А мне -4 сделал =] Через них конечно. Всё дело в том, что когда ТЫ пишишь через сокеты, то запрос формируешь ТЫ. А в случае Curl ты только задаёшь переменные, а curl может вставить например свой юзер-агент или ещё что-нибудь...
я знаю, что я поступал глупо(правда тогда максимум, что было у меня - бесплатный хостинг). А вот ты это и советуешь вместо правильного решения.
Пять =) Нет, сокеты не могут поддерживать редирект, потому-что сокеты не только для http запросов. Сокеты посылают\принимают. В этом их задача. Чтобы был редирект, тебе прийдётся анализировать полученный хедер, ну и дальше.... =)