Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Помогите передать POST (https://forum.antichat.xyz/showthread.php?t=195188)

Buffalon 10.04.2010 19:42

Помогите передать POST
 
Нужно передать пост запрос на страницу http://goldtown.ru/admin.php с паролем и именем , делаю так (знаю что КУРЛ РУЛИТ)
как правильно ??
пароль и логин в данном случае не верны ,я это знаю - не работает сам скрипт , пожалуйста помогите
<?php
//открываем сокет к http://www.example.loc на 80-й порт с таймаутом в 30 секунд
$socket = fsockopen('goldtown.ru', 80, $errno, $errstr, 30);

//если fsockopen вернула false, то завершаем работу скрипта и выводим текст и номер ошибки
if(!$socket)die("$errstr($errno)");

//собираем данные
$data = "user_login=admin&&password=pass";

//пишем в сокет метод, URI и протокол
fwrite($socket, "POST /admin.php?dispatch=products.manage HTTP/1.1\r\n");
//а также имя хоста
fwrite($socket, "Host: goldtown.ru\r\n");

//теперь отправляем заголовки
//Content-type должен быть applicaion/x-www-form-urlencoded
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
//размер передаваемых данных передаем в заголовке Content-length
fwrite($socket,"Content-length:".strlen($data)."\r\n");
//типы принимаемых данных. */* означает, что принимаем все типы данных
fwrite($socket,"Accept:*/*\r\n");
//представимся оперой
fwrite($socket,"User-agent:Opera 10.00\r\n");
fwrite($socket,"\r\n");

//теперь передаем данные
fwrite($socket,"$data\r\n");
fwrite($socket,"\r\n");

//теперь читаем и выводим ответ
$answer = '';
while(!feof($socket)){
$answer.= fgets($socket, 4096);
}
preg_match("|Location:(\D+)Con|is",$answer,$res);
echo $answer[1];
echo file_get_contents("http://goldtown.ru/admin.php?dispatch=auth.login_form&return_url=admi n.php");


echo $answer;
//закрываем сокет
fclose($socket);
?>

Jerri 10.04.2010 20:10

Перехвати заголовки и посмотри как правильно.

попугай 10.04.2010 20:39

PHP код:

<?php
function post($host$script$cont){
$respons="";
$postsock fsockopen($host80$errno$errstr60);
if (!
$postsock) echo $errstr($errno);
else
{
$head "POST $script HTTP/1.1\r\n";
$head .= "Host: $host\r\n";
$head .= "Connection: close\r\n";
$head .= "Content-Type: application/x-www-form-urlencoded\r\n";
$head .= "Content-Length: " .strlen($cont). "\r\n";
$head .= "\r\n$cont\r\n";
fwrite($postsock$head);
while(!
feof($postsock)){
$respons .= fgets($postsock1024);
}
fclose($postsock);
}
return 
$respons;
}

echo 
post('goldtown.ru''/admin.php''user_login=admin&&password=pass');



Время: 23:09