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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Post запрос (https://forum.antichat.xyz/showthread.php?t=10403)

vvs777 30.10.2005 00:47

Post запрос
 
Народ, нужна помощь!
У меня на сайте стоит форма регистрации на другом сайте. Писал на Яваскрипте.
Код:

<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&desc r=Your_description');
а так в descr многострочный текст, который должен быть передан именно так, как в textarea, без изменений.

fucker"ok 02.11.2005 16:10

Код:

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');

vvs777 03.11.2005 10:12

А если descr многострочный - надо писать
Post('othersite.ru,'/cgi-bin/script.cgi','login=123&pass=qwerty&descr=stroka1%1 3%10stroka2%13%10итд'); ?

fucker"ok 03.11.2005 12:09

Можно и так, или обработать через urlencode();

vvs777 05.11.2005 00:18

А самое главное не заметил. А без fsockopen как-то можно?

fucker"ok 10.11.2005 20:41

Curl, но не факт...


Время: 06:47