Приветствую, гуру кодинга. Имеется капча...лежит адресу сайт.ру/codeimage.fpl/9353728 где цифры - id. Самое интересное, что при попытке открыть капчу выдается просто пустой фон. без секретного кода, но на странице когда отображается - все норм. phpsessionid там нет. подтянул одного старшего товарища, который шарит в php.... тот тоже в непонятках. Я думаю, может там реферер надо передавать. вот код... PHP: <?php $this_header = array( "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1", "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8", "Accept-Encoding: gzip, deflate", "Cache-Control: no-cache", "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709))", "Connection: Keep-Alive"); $place = curl_init(); curl_setopt($place, CURLOPT_URL,'http://site.ru/interface/codeimage.fpl/12784797'.$xdac[1]); curl_setopt($place, CURLOPT_RETURNTRANSFER,1); curl_setopt($place, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($place, CURLOPT_HTTPHEADER, $this_header); curl_setopt ($place, CURLOPT_REFERER, "http://site.ru/sawmill_mode_1.html"); curl_setopt($place, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7'); curl_setopt($place, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); curl_setopt($place, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); $resp = curl_exec($place); curl_close($place); echo $resp; ?> Выводит Code: аброкадабру. content type тоже не помог. как быть?
непонятно, к чему ты это сказал. так отображается капча на странице Так отображается, если перейти по прямой линке на капчу. phpsessionid там не передается. просто id капчи. и самое интересное тут то, что на ней вообще кода нет.
не флуди, а читай тему прежде чем писать. при переходе по линку капчи у капчи исчезает код. даже в браузере. выцепить страницу через курл содержаую капчу получается, капча отображается. еще по умничаешь?
justonline вы не пробовали читать то, что вам советуют прежде, чем строить из себя оскорбленную невинность? Перейти по линку капчи НЕ ТО ЖЕ самое, что повторить все заголовки через сниффер.
ок. линк капчи уже имеет Id. отправка через курл всех браузерных заголовков + referrer ничего не дает. что бы не регаться и не искать ту страницу, на которой я тестил...можно глянуть на капчу на странице реги(она там та же самая. http://apeha.ru/user_add_1.html заполняете любые данные, жмете продолжить. там будет капча. товарищ говорит, что на делфях записать картинку из потока проще и передать. но мне надо именно на php.
justonline капча будет сохранена в файл your_captcha.jpg PHP: <?PHP function request($url, $post='', $referer='') { $ch = curl_init($url); if ($post) curl_setopt($ch, CURLOPT_POSTFIELDS, $post); if ($referer) curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux i686; rv:9.0.1) Gecko/20100101'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cook.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cook.txt'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); return $data; } request('http://apeha.ru/user_add_1.html'); $data = request('http://utes.apeha.ru/user_add_2.html', 'User{nick}=wefdsd&User{email}[email protected]&User{fname}=asdasdasd&User{lname}=asdasdasd&User{Female}=0&User{Day}=0&User{Mon}=4&User{Yea}=1945&User{town}=asdasd&User{deviz}=asdasdas&User{hobby}=dsadasdasd&User{istinf}=asdasdasda&User{ruid}=', 'http://apeha.ru/user_add_1.html'); preg_match('~http://utes.apeha.ru/interface/codeimage.fpl/\d+~i', $data, $img_url); $img = request($img_url[0], '', 'http://utes.apeha.ru/user_add_2.html'); file_put_contents('your_captcha.jpg', $img); лицорука