Существует сайт site.ru В нем есть переход на форму регистрации: site.ru/cgi/registration.php В регистрации есть имя формы <FORM name=nameform action=registration.php> и другие параметры, допустим такие как имя и пароль. Предположим что капчи нет. Как должна выглядеть строка пост запроса? Если б action формы ссылался на другое название, а не на registration.php, то пост запрос в сокетах был бы прмиерно такой: http://site.ru/cgi/registration123.php?name=qwerty&pass=123 А как быть тут?
это ты написал не пост запрос а get, а пост запрос на php сокетах будет примерно такой (не проверял) PHP: $socket = fsockopen("site.ru", 80, $errno, $errstr, 30); $data = "name=".urlencode("qwerty")."&pass=".urlencode("123"); fwrite($socket, "POST /registration.php HTTP/1.1\r\n"); fwrite($socket, "Host: site.ru\r\n"); fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n"); fwrite($socket,"Content-length:".strlen($data)."\r\n"); fwrite($socket,"Accept:*/*\r\n"); fwrite($socket,"User-agent:Opera 10.00\r\n"); fwrite($socket,"Connection:Close\r\n"); fwrite($socket,"\r\n"); fwrite($socket,"$data\r\n"); fwrite($socket,"\r\n"); //ответ $answer = ''; while(!feof($socket)){ $answer.= fgets($socket, 4096); } echo $answer; fclose($socket);
Небольшая поправка по поводу кода, который написали выше. После окончания самого тела POST запроса не нужно добавлять \r\n. То есть вместо PHP: fwrite($socket,"$data\r\n"); fwrite($socket,"\r\n"); достаточно только: PHP: fwrite($socket, $data);
Подскажите, обязательно ли делать урленкоде, если введенные символы - латинские буквы или цифры? Я думал, это только для кириллицы..или нет?