Народ, нужна помощь! У меня на сайте стоит форма регистрации на другом сайте. Писал на Яваскрипте. Code: <form name="regfrm" method='POST' action="http://othersite.ru/cgi-bin/script.cgi"> <input type="text" name="code" size=10> <input type="text" name="number" value=""> <input type="text" name="language" value="rus"> <textarea name="descr">Your description</textarea> <input type="submit" Value="Go!"> </form> <script> // функция получает из строки запроса значение параметра по имени. function Getparamvalue(search_string, param_name) { param_name=param_name+'='; var z=''; if (search_string!='') { if (search_string.indexOf(param_name,0)!=-1) { var startpos=search_string.indexOf(param_name,0)+param_name.length; var endpos=search_string.indexOf('%26',startpos); if (endpos<=startpos) endpos=search_string.length; z=search_string.substring(startpos,endpos); } } return z; } var p=window.location.search; document.regfrm.code.value=Getparamvalue(p,'code').substring(0,6); document.regfrm.number.value=Getparamvalue(p,'number'); //... document.forms[0].submit(); </script> Так вот. Как мне сделать то же самое на PHP? Если точнее, нет ли у кого готового кода формирования POST-запроса к скрипту с другого сайта с заданными значениями? Если б это был GET, можно было бы прописать что-то типа header('http://othersite.ru/cgi-bin/script.cgi?code=ABCD&number=bf01&language=rus&descr=Your_description'); а так в descr многострочный текст, который должен быть передан именно так, как в textarea, без изменений.
Code: function Post($server,$url,$post) { $q="POST $url HTTP/1.1\r\n". "Host: $server\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n". 'Accept:text/html, image/jpeg, image/png, text/*, image/*, */*'."\r\n". "Accept-Encoding: x-gzip, x-deflate, gzip\r\n". "Accept-Charset: windows-1251, utf-8;q=0.5, *; q=0.5\r\n". "Accept-Language:ru, en\r\n". "Keep-Alive: 300\r\n". "Proxy-Connection: keep-alive\r\n". "Referer: $server \r\n". // "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: ".strlen($post)."\r\n". "\r\n". "$post\r\n"; $s=fsockopen($server,80); fputs($s,$q); while (!feof($s)) $page.=fgets($s); fclose($s); return $page; } Передаёшь функции 3 параметра: сервер, урла, ПОСТ запрос. Например Post('othersite.ru,'/cgi-bin/script.cgi','login=123&pass=qwerty');
А если descr многострочный - надо писать Post('othersite.ru,'/cgi-bin/script.cgi','login=123&pass=qwerty&descr=stroka1%13%10stroka2%13%10итд'); ?