Добрый день. не могу на сайте http://nsau.edu.ru/student/answers/ правильно скачать капчу. При каждом запросе она меняется. и при скачивании функцией $first_img = imagecreatefrompng('http://nsau.edu.ru/captcha/'); imagepng($first_img,"osssssssss.png"); в общем для спам бота,который скачает капчу,расшифровывает(скрипт по разгадыванию капчи я уже написал,кому интересно могу скинуть)
Ну у меня есть только один вариант, генерируй PHPSESSID, и через cUrl грузи капчу. Потом когда будешь отправлять Post-запрос, припиши PHPSESSID в куки. А то что капча меняется, это нормально.
$curlInit = curl_init("http://nsau.edu.ru/student/answers/"); curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($curlInit,CURLOPT_HEADER,true); curl_setopt($curlInit,CURLOPT_NOBODY,false); curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true); curl_setopt($curlInit, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); //получаем ответ $response = curl_exec($curlInit); curl_close($curlInit); $sess_cookie=substr($response, strpos($response, "PHPSESSID=")+10, 32); echo "<br>PHPSESSID=".$sess_cookie; $response = str_replace("/captcha/", "http://nsau.edu.ru/captcha/?PHPSESSID=".$sess_cookie, $response); echo $response; $first_img = imagecreatefrompng('http://nsau.edu.ru/captcha/?PHPSESSID='.$sess_cookie); imagepng($first_img,"osssssssss.png"); echo "<br>PHPSESSID=".$sess_cookie; echo "<br><img src='osssssssss.png'>"; ?> Ну я сделал,только толку,картинка которая сохраняется и которая показывается совершенно разные
Заходишь на страницу с капчей, считываешь кукисы/скрытые поля, запоминаешь их. Скачиваешь картинку, предварительно отправив эти кукисы на капчу. Распознаешь капчу. Отправляешь распознанное поле с кукисами на скрипт-обработчик. Возможно придется получать кукисы не со страницы с капчей, а со скрипта генератора капчи.
эммм...вот так отправлять заголовки? <?php $curlInit = curl_init("http://nsau.edu.ru/student/answers/"); curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($curlInit,CURLOPT_HEADER,true); curl_setopt($curlInit,CURLOPT_NOBODY,true); curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true); curl_setopt($curlInit, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); $response = curl_exec($curlInit); curl_close($curlInit); //echo $response; $sess_cookie=substr($response, strpos($response, "PHPSESSID=")+10, 32); echo $sess_cookie."<br>"; $curl = curl_init("http://nsau.edu.ru/captcha/"); curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($curl,CURLOPT_HEADER,false); curl_setopt($curl,CURLOPT_NOBODY,false); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: text/html", "Connection: keep-alive", "Vary: Accept-Encoding", "Set-Cookie: PHPSESSID=".$sess_cookie."; path=/; domain=.nsau.edu.ru")); $resp = curl_exec($curl); curl_close($curl); $fh = fopen('sss.png', "w+"); fwrite($fh, $resp); ?> просто я раньше отправлением,да и вообще с функцией curl не имел дела