ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PHP Cookies & Sessions (https://forum.antichat.xyz/showthread.php?t=8010)

KEZ 12.07.2005 13:04

Цитата:

а как отпостить переменные формы и куки?

...
$content = "value1=1&value2=2&value3=3&blablabla=blabla\n ";
$request = "POST http://".$server.$url." HTTP/1.1\n";
$request .= "Host: ".$server."\n";
$request .= "User-Agent: вставь сюда агент\n";
$request .= "Connection: Keep-Alive\n";
$request .= "Content-Type: text/html\n";
$request .= "Content-Length: ".strlen($content)."\n";
$request .= "\n".$content."\n";

fwrite( $sock, $request );
...

KEZ 12.07.2005 13:20

точнее лутше Connection: Close

MiZtEriX 12.07.2005 14:49

The POST method is used to request that the origin server accept the
entity enclosed in the request as a new subordinate of the resource
identified by the Request-URI in the Request-Line. POST is designed
to allow a uniform method to cover the following functions:
.....
а на практике это как всё?
вам не очень трудно написать?

KEZ 12.07.2005 14:57

Цитата:

а на практике это как всё?
вам не очень трудно написать?
ну а я тебе че написал? вверху почитай - на PHP написано.
а если хочешь попрактиковаться - сделай так. скачай InetCrack+Naviscope (http://antichat.ru/inetcrack/)
и включи naviscope. теперь через IE залезь куданить и naviscope тебе покажет
какие твой браузер отправлял заголовки. а вручную их удобно отправлять InetCrack'ом

а вообще может быть тебе интересно зачем нужен GET и POST ?
так вот. когда ты пишешь в адресной строке
http://porno.com/script.php?parameter=1
тоданные из parameter передаются методом GET. тоесть в прямо в адресной строке
например script.php?a=1&b=1&c=2&d=32
Тоесть они передаются в ЗАГОЛОВКЕ HTTP запроса :
GET http//.../script.php?parameter=1 HTTP / 1.1
...

А POST метод передает данные в ТЕЛЕ запроса, их невидно в адресной строке:
GET http://script.php HTTP / 1.1
...
Content-Type: тип mime
Content-Length: размер тела

parameter=1&a=1&b=2...


Ясно стало?
Часто POST юзают там где юзер чтото отправляет на сервер.
Хотя в любом случае ответом сервера будет результат работы скрипты\чегото ещё...

MiZtEriX 12.07.2005 15:21

что я неправильно делаю?
 
<?
$file=fopen("test1.htm","w");

$url = "/index.php?pid=4";
$server = "csport";
$useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2)";

$fp = fsockopen("csport", 80, $errno, $errstr, 30);
if (!$fp) {
echo "Error! $errstr ($errno)<br />\n";
} else {
$out = "GET http://".$server.$url." HTTP/1.1\r\n";
$out .= "Host: ".$server."\r\n";
$out .= "User-Agent: ".$useragent."\r\n";;
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!$flag) {
$line = fread($fp,32000);
if (strstr($line, "Set-Cookie: _data")){$cukdata = substr($line, 12, sizeof($line));}
if (strstr($line, "Set-Cookie: _sid")){$cuksid = substr($line, 12, sizeof($line));}
$form=strstr($line,"<form");
if ($form){$flag=1;}
fputs ($file,$line);
}
}
fclose($file);
$file=fopen("test2.htm","w");
if ($form<>'') {
if (!$fp) {
echo "Error! $errstr ($errno)<br />\n";
} else {
echo "form finded - login\r\n\r\n";
$content = "username=test&password=test&autologin=checked&red irect=portalhome&submit=Login";
$out = "POST http://".$server."/f/login.php?login=true&amp;sid=".$cuksid." HTTP/1.1\r\n";
$out .= "Host: ".$server."\r\n";
$out .= "User-Agent: ".$useragent."\r\n";;
$out .= "Cookie: ".$cukdata."\r\n";
$out .= "Cookie: ".$cuksid."\r\n";
$out .= "Content-Type: text/html\n";
$out .= "Content-Length: ".strlen($content)."\n";
$out .= "\n".$content."\n";
$out .= "Connection: Close\r\n\r\n";
fputs($fp, $out);
while (!feof($fp)) {
$line = fread($fp,32000);
if (strstr($line, "Set-Cookie: _data")){$cukdata = substr($line, 12, sizeof($line));}
if (strstr($line, "Set-Cookie: _sid")){$cuksid = substr($line, 12, sizeof($line));}
fputs ($file,$line);
}
}
}
fclose($file);
$file=fopen("test3.htm","w");
if ($form<>'') {
if (!$fp) {
echo "Error! $errstr ($errno)<br />\n";
} else {
echo "get page\r\n\r\n";
$out = "GET http://".$server.$url." HTTP/1.1\r\n";
$out .= "Host: ".$server."\r\n";
$out .= "User-Agent: ".$useragent."\r\n";;
$out .= "Cookie: ".$cukdata."\r\n";
$out .= "Cookie: ".$cuksid."\r\n";
$out .= "Connection: Close\r\n\r\n";
fputs($fp, $out);
while (!feof($fp)) {
$line = fgets($fp);
fputs ($file,$line);
}
}
}
fclose($file);
fclose($fp);

MiZtEriX 14.07.2005 12:50

первый файл (test1) до строки с <form
второй (test2) - его продолжение
третий вообще пустой
а должно быть: в первом форма на логон, во втором - авторизация успешна, в третьем закрытая страница
что здесь неверно? как исправить? подскажите, пожалуйста, а то уже неделю над этим бьюсь :(

KEZ 14.07.2005 16:05

тем кто так пишет скрипты надо давать по шее.

MiZtEriX 15.07.2005 12:53

я ж и спрашиваю, как надо?

nerezus 15.07.2005 13:20

Надо правильно.
Мануал по пхп и Rfc 2616 в зубы и вперед на мины ;)

MiZtEriX 15.07.2005 16:54

ну ваще... я с мануалов начал, если б там ВСЁ было написано, я б уже сделал давно...

<?
$fp = fsockopen("csport", 80, $errno, $errstr, 30);
$file=fopen("test.htm","w");
if (!$fp) {
echo "Error! $errstr ($errno)<br />\n";
} else {
$out = "GET http://csport/index.php?pid=4 HTTP/1.1\r\n";
$out .= "Accept: */*
Referer: http://csport/
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2)
Host: csport
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: data=a%3A2...........%7D


";
fputs($fp, $out);
while (!feof($fp)) {
$line = fgets($fp);
fputs ($file,$line);
}
echo "ok";
}
fclose($file);
fclose($fp);
?>

вот это у меня работает, когда я кук сюда копирую из браузерного
а как мне залогиница и получить свежий кук? ну не получается у меня пройти по нескольким страницам! неужто так трудно помочь?


Время: 14:24