Autor Zpráva
na1k
Profil
Existuje nějaký způsob jak poslat v hlavičkách z php (např. přes funkci header() ) proměnné tak, aby se v cílové stránce jevily jako přijaté přes POST?

Něco jako:

header('POST: soubor='.$soubor.',adresa='.$adresa);
header('Location: zpracuj-formular.php');
DFly
Profil
HTTP protokol
nightfish
Profil
na1k
CURL - v komentářích od uživatelů je přesně to, co potřebuješ...
DFly
Profil
to uz radeji pres fSockOpen u ktereho je v komentarich fce httpSocketConnection
fSockOpen
DFly
Profil
a nebo jednoucelove
<?php

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);

# working vars
$host = 'www.example.com';
$service_uri = '/cgi-bin/processACT';
$vars ='code=22&act=TEST';

# compose HTTP request header
$header = "Host: $host ";
$header .= "User-Agent: PHP Script ";
$header .= "Content-Type: application/x-www-form-urlencoded ";
$header .= "Content-Length: ".strlen($vars)." ";
$header .= "Connection: close ";

$fp = pfsockopen("ssl://".$host, 443, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/> ";
echo $fp;
} else {
fputs($fp, "POST $service_uri HTTP/1.1 ");
fputs($fp, $header.$vars);
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}

?>
nightfish
Profil
DFly
EDIT: má fsockopen nějakou zásadní výhodu oproti curl?
DFly
Profil
nightfish
Curl nemusi byt vsude
na1k
Profil
DFly
# compose HTTP request header
$header = "Host: $host ";
$header .= "User-Agent: PHP Script ";
$header .= "Content-Type: application/x-www-form-urlencoded ";
$header .= "Content-Length: ".strlen($vars)." ";
$header .= "Connection: close ";


Tohle už vypadá zajímavě, tak nějak jsem to myslel ... asi :-p Prostě ty proměnné nějak předat v hlavičce (tam přece obvykle POST chodí nebo ne?) a simulovat tím odeslání formuláře.
Je ale nutné použít fsockopen, když chci hlavičky posílat v rámci jedné domény, tzn. jednoho webu?

Můj cíl je takový, že bych některé proměnné posílal v POST namísto GET ... nemusí je vidět každý (ikdyž je mi jasné, že kdo chce, ten si je najde i tak :-) )

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: