phpbar.de logo

Mailinglisten-Archive

[php] Redirect incl. HTTP_POST_VARS

[php] Redirect incl. HTTP_POST_VARS

Reiner Kukulies reiner.kukulies_(at)_uni-koeln.de
Thu, 11 Mar 1999 22:03:46 +0100


Am 11 Mar 99, schrieb Thomas Schulz zu "Re: [php] Redirect incl. HTTP_POST_":

>>> Wie sende ich die HTTP_POST_VARS aus der originalen Anfrage mit?

Bei einem Redirect wird der Browser des Benutzers aufgefordert, einen anderen 
URL abzufragen. Du kannst also nicht selbst Daten an diesen zweiten URL 
schicken, sondern der Benutzer muß das tun. Die einzige Möglichkeit ist 
wirklich, alles im URL zu kodieren und den Browser per GET übergeben zu 
lassen.

Alternativ könntest Du noch alle Variablen auf Deinen Server 
zwischenspeichern und nur eine ID übergeben, mit deren Hilfe das zweite 
Script die Daten wieder ermittelt.

Oder Du sparst Dir den Redirect und fragst aus dem ersten Script die zweite 
Seite ab und übergibst dabei alle Parameter. Die Antwort der zweiten Seite 
gibst Du dann in der ersten aus:

function PostToHost($host, $path, $data_to_send) { 
$fp = fsockopen($host,80); 
fputs($fp, "POST $path HTTP/1.1\n"); 
fputs($fp, "Host: $host\n"); 
fputs($fp, "Content-type: application/x-www-form-urlencoded\n"); 
fputs($fp, "Content-length: ".strlen($data_to_send)."\n"); 
fputs($fp, "Connection: close\n\n"); 
fputs($fp, $data_to_send); 
while(!feof($fp)) { 
echo fgets($fp, 128); 
} 
fclose($fp); 
} 

You would call this function with something like: 

PostToHost("www.whatever.com","/cgi-bin/whatever.cgi","abc=123&def=456"); 

Das Beispiel stammt von Rasmus Lerdorf (http://webdev.berber.co.il/get_example.php3?count=146). 
Damit kann man z.B. fremde Datenbanken pluendern, die nur POST akzeptieren und die Ergebnisse an 
das eigene Layout angepasst in den eigenen Seiten praesentieren. Eignet sich auch ganz gut dazu ein 
besseres Interface für teleauskunft.de oder einige Online-Fahrplaene zu schreiben ;)

Gruß, Reiner

-- 
reiner_(at)_kukulies.de * http://kukulies.de


php::bar PHP Wiki   -   Listenarchive