хочу написать скрипт...юзер заходит на сайт вбивает свое мыло+пароль с вконтакте и показывается его фото +кое что из инфо...как это сделать? ..начал писать из готовых.. PHP: <?php set_time_limit(0); $fp=fsockopen("vkontakte.ru",80,$errno,$errstr); $out = "POST http://vkontakte.ru/login.php HTTP/1.0\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Host: vkontakte.ru\r\n"; $out .= "Content-Length: 38\r\n"; $out .= "Pragma: no-cache\r\n"; $out .= "Cookie: remixchk=5; remixlang=0; remixfriends=1; remixclosed_tabs=0; remixautobookmark=2\r\n"; $out .= "Connection: Keep-Alive\r\n\r\n"; $out .= "[email protected]&pass=Dnrj43e9"; fwrite($fp,$out); echo "coocie--->> ".$_COOKIE['remixmid']; # Записываем ответ сервера в переменную while (!feof($fp)) { $ans=fgets($fp); } echo $ans; # Если 302 найден, значит акк валидный if(preg_match("/\b302 Found\b/is", $ans)) { echo " true"; } else { echo " false"; } fclose($fp); ?> что делать дальше?
Мне интересно, зачем вы все проходите через login.php ? Сразу cookie ставить на index нельзя? Вопросов тогда не было бы
можешь подробнее написать?....как сразу подставлять куки?..нужно же их вначале получить для конкретного мыла+пароля?...не так?
Непостоянные куки только мыло, пароль и айди, но обязательные и другие куки не помню какие, но они постоянные
$answer = explode("\r\n", $answer); for ($i = 0; $i <= count($answer); $i++) { if (strstr($answer[$i], "Set-Cookie: ")) { $cookie = str_replace("Set-Cookie: ","",answer[$i]); } } ну а далее как обычно Cookie: ".$cookie."\r\n
PHP: <?php set_time_limit(0); $fp=fsockopen("vkontakte.ru",80,$errno,$errstr); # Отправляем заголовки $out = "POST http://vkontakte.ru/login.php HTTP/1.0\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Host: vkontakte.ru\r\n"; $out .= "Content-Length: 38\r\n"; $out .= "Pragma: no-cache\r\n"; $out .= "Cookie: remixchk=5; remixlang=0; remixfriends=1; remixclosed_tabs=0; remixautobookmark=2\r\n"; $out .= "Connection: Keep-Alive\r\n\r\n"; $out .= "[email protected]&pass=qwerty123"; fwrite($fp,$out); echo "coocie--->> ".$_COOKIE['remixmid']; # Записываем ответ сервера в переменную //$ans=fgets($fp,3000); echo $ans; while(!feof($fp)) { $ans=fgets($fp); echo $ans; } # Закрываем сокет echo $ans; # Если 302 найден, значит акк валидный if(preg_match("/\b302 Found\b/is", $ans)) { echo " true"; } else { echo " false"; } fclose($fp); ?> в чем ошибка? HTTP-шлюз не отвечает
Данный тип цикла предназначен специально для перебора всех элементов массива и был добавлен только в четвертой версии языка PHP. Выглядит он следующим обра- зом: PHP: foreach(массив as $key=>$value){ команды; }
foreach Это цикл для перебора ассоциативного массива. Удобная штука. Вот тебе на русском мануал http://www.php.su/php/intro/?9_2
HTTP proxies: 203.162.224.139:80 58.53.220.9:80 201.54.148.7:3128 66.60.234.132:80 203.162.163.80:80 Anonymous HTTP proxies: 198.151.38.68:80 211.38.131.22:80 207.97.253.254:80 217.20.130.86:80 203.177.74.139:8080 High anonymous (elite) HTTP proxies: 66.60.234.132:80 128.187.223.211:3127 216.194.70.3:8118 222.47.88.14:3128 81.21.5.198:3128 Free HTTPS proxy list: 202.168.245.10:3128 190.68.184.42:3128 Free SOCKS 4 proxy list: 216.227.52.232:5208 71.135.116.130:40033 67.187.225.159:1026 24.255.217.98:13648 69.245.100.209:1027 Free SOCKS 5 proxy list: 216.227.52.232:5208 71.135.116.130:40033 24.255.217.98:13648 76.235.181.23:52677 201.17.172.71:1024 Free RUSSIAN proxies: 213.128.217.107:3128 217.23.176.78:3128 217.119.19.234:3128 86.110.27.240:3128 85.88.188.85:3128 81.30.211.105:3128 195.54.209.151:3128 195.54.209.166:3128 87.236.46.19:6588 212.220.154.218:3128
Решил освежить свои знания по подделке запросов к серверу - написал небольшой скрипт на пхп. PHP: <?php //90.156.158.104 www.litprom.ru //Connection: Close\r\n\r\n $fp = fsockopen("www.litprom.ru", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $headers = "POST /text.phtml?storycode=343 HTTP/1.0\r\n"; $headers .= "Host: www.litprom.ru\r\n"; $headers .= "User-Agent: Mosaic%200.1b\r\n"; $headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $headers .= "Accept-Encoding: gzip,deflate\r\n"; $headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"; $headers .= "Keep-Alive: 300\r\n"; $headers .= "Connection: keep-alive\r\n"; $headers .= "Referer: www.litprom.ru\r\n"; $headers .= "Cookie: PHPSESSID=ec8167a0ceae9ed75240f506212889bf; b=b; hotlog=1\r\n"; $headers .= "Content-Type: application/x-www-form-urlencoded\r\n"; $headers .= "Content-Length: 145\r\n"; $headers .= "POSTDATA: login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%80%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1\r\n\r\n"; fwrite($fp, $headers); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> а он орёт что длина не указана.. у нас тут прокся на работе. может она всё портит? PHP: HTTP/1.0 411 Length Required Server: squid/2.5.STABLE6 Mime-Version: 1.0 Date: Sun, 29 Jun 2008 07:19:49 GMT Content-Type: text/html Content-Length: 1879 Expires: Sun, 29 Jun 2008 07:19:49 GMT X-Squid-Error: ERR_INVALID_REQ 0 X-Cache: MISS from linux.key-soft.net Connection: close ERROR The requested URL could not be retrieved While trying to process the request: GET /text.phtml?storycode=343 HTTP/1.0 Host: www.litprom.ru User-Agent: Mosaic%200.1b Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: www.litprom.ru Cookie: PHPSESSID=ec8167a0ceae9ed75240f506212889bf; b=b; hotlog=1 Content-Type: application/x-www-form-urlencoded Content-Length: 145 POSTDATA: login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%80%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1 The following error was encountered: Invalid Request Some aspect of the HTTP Request is invalid. Possible problems: Missing or unknown request method Missing URL Missing HTTP Identifier (HTTP/1.0) Request is too large Content-Length missing for POST or PUT requests Illegal character in hostname; underscores are not allowed Your cache administrator is admin.
Не надо писать POSTDATA, нужно сразу писать запрос, а перед ним идёт двойной перенос строки Code: $headers .= "Content-Length: 145\r\n\r\n"; $headers .= "login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%80%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1\r\n";