Показать сообщение отдельно

  #9  
Старый 02.09.2009, 02:50
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
С нами: 10269701

Репутация: 58
По умолчанию

Цитата:
Сообщение от zavra  
PHP код:
<?

$method
="POST";
$addr="/login.php"//адрес относительно корня сервера, 
$target="127.0.0.1"//ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80//порт сервера или прокси

$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);

$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;

echo 
$in;

$socket socket_create (AF_INETSOCK_STREAM0);
$result socket_connect ($socket$target$targetport);
socket_write($socket$instrlen($in));
$o="";
while (
$out socket_read ($socket2048)) {
   
$o.=$out;
}
echo 
$o;
?>
Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
так у вас адрес локальный, а хост в запросе порписан vkontakte.ru...
можно через cURL
PHP код:
$c curl_init();      
curl_setopt($cCURLOPT_URL"http://vkontakte.ru/");    
curl_setopt($cCURLOPT_REFERER"http://vkontakte.ru/");      
curl_setopt($cCURLOPT_USERAGENT"9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");      
curl_setopt($cCURLOPT_HEADER1);      
curl_setopt($cCURLOPT_RETURNTRANSFER1);      
$body curl_exec($c);
curl_close($c);
//это обычный гет 
PHP код:
$c curl_init();  
curl_setopt($cCURLOPT_URL"http://vkontakte.ru");
curl_setopt($cCURLOPT_REFERER"http://vkontakte.ru");
curl_setopt($cCURLOPT_USERAGENT"9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($cCURLOPT_HEADER1);
curl_setopt($cCURLOPT_POST1);
curl_setopt($cCURLOPT_POSTFIELDS$post);
curl_setopt($cCURLOPT_RETURNTRANSFER1);
curl_setopt($cCURLOPT_COOKIE$cookies);
$body curl_exec($c);
curl_close($c);
//это пост 
http://www.php.su/functions/?cat=curl здесь подробно описао какие ключи что значат. икак пользоваться...
PHP код:
preg_match_all('|Set-Cookie: (.*);|U'$body$results);
$cookies implode(';'$results[1]); 
регулярка для выдерания куков из пришедших хедеров

Последний раз редактировалось RedBull@12; 02.09.2009 в 03:01..
 
Ответить с цитированием