Заиметь капчу яши

Статус
В этой теме нельзя размещать новые ответы.

bikuri

Создатель
Регистрация
18 Май 2009
Сообщения
36
Реакции
0
Народ, сразу говорю, яшу и гошу уже мучаю третий день.. сил моих больше нет, решил спросить на форуме. В пхп - нуб, учусь. Задача: вытянуть капчу яши вот отсюда:

https://passport.yandex.ru/digits?idkey=$idkey (это второй шаг регистрации)
idkey - известен.
Вобщем хочу картинку эту. Заранее всем благодарен!
 
Вот держи, один из возможных вариантов :)


PHP:
$idkey = '06N1251226363Jq4Bgmbl6';
$img_capcha_yandex = file_get_contents('http://passport.yandex.ru/digits?idkey='.$idkey);
header ('Content-Type: image/gif');
echo $img_capcha_yandex;
file_put_contents ($idkey . '.gif', $img_capcha_yandex);

:crazy:
 
Вот говорит:
Warning: file_get_contents(Для просмотра ссылки Войди или Зарегистрируйся) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in Z:\home\localhost\www\yareg.php on line 52

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\yareg.php:9) in Z:\home\localhost\www\yareg.php on line 53

Мне это уже в кошмарных снах снится :mad:
 
HTML:
header ('Content-Type: image/gif');
это в самом начале файла напиши)
все лишние хтмловские теги удали
 
Тэги убрал... одной ошибкой меньше стало, но результата нет.

Вот это мне говорит ExpertEditor:

Warning: file_get_contents(Для просмотра ссылки Войди или Зарегистрируйся) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in D:\WebServers\home\localhost\www\yareg.php on line 45
Error in my_thread_global_end(:( 1 threads didn't exit

(допускаю, что он криво у меня настроен)

Вот это Firefox:

Изображение "http://localhost/yareg.php" не может быть показано, так как содержит ошибки.

Не бросайте меня, вот-вот Кондрат хватит!:thenks:


ЗЫ
Создается пустой файл $idkey.gif
 
А кукис сессии на первом шаге запоминаем?
 
Куки не трогал.. а надо? да и сессии как-то мимо прошли... ))
объясни ламаку, плз.
 
Попробуй
PHP:
<?

$data = "step=one&filled=yes&fresh&iname=Test&fname=TestTest&login=TestTestTest000&done=%C4%E0%EB%FC%F8%E5%A0%26%238594%3B";
$ret = request('POST', 'passport.yandex.ru', '/passport?mode=register', $data, 0);
preg_match('/idkey" value="(.+?)"/', $ret, $d);
$ret = request('GET', 'passport.yandex.ru', '/digits?idkey='.$d[1], 0, 0);


header ('Content-Type: image/gif');
print substr($ret,strpos($ret,"\r\n\r\n")+4);

function request($type, $host, $url, $data, $cook)
{
 $fp = fsockopen($host, 80, $errno, $errstr, 30);
 if (!$fp) 
	{
     echo "$errstr ($errno)<br />\n";
	 return 0;
	} 
 else 
	{
	 if($type === "GET")
		{
		 $out = "GET $url HTTP/1.0\r\n".
		 "Host: $host\r\n".
		 "Cookie: $cook\r\n".
		 "Connection: close\r\n\r\n";
		}
	 elseif($type === "POST")
		{
		 $out = "POST $url HTTP/1.0\r\n".
		 "Host: $host\r\n".
		 "Cookie: $cook\r\n".
		 "Content-Type: application/x-www-form-urlencoded\r\n".
		 "Content-Length: ".strlen($data)."\r\n\r\n".$data;
		}

     fwrite($fp, $out);
	 $res = '';
     while (!feof($fp)) $res .= fgets($fp, 128);
	 fclose($fp);
	 return $res;
	}
}
?>
 
Всем ОГРОМНОЕ спасибо!
Последний вариант подошел.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху