POST weiterleiten

joergdeymann

Grünschnabel
Auf der PHP Seite: http://www.php-faq.de/q/q-code-post.html

wird gezeigt wie man einen Post weiterleitetet an einer Seite, z.B. enter.php.
Diese Seite wird dann aber nicht aufgerufen, richtig ?
Wenn ich header("location:enter.php"); aus führe, dann sind die
$_POST variablen immer noch oder wieder leer.

Frage:
Wie kann ich die übergebenen Daten dann in dem neuen PHP (enter.php) anzeigen ?
 
Wie dort gezeigt musst Du selbst eine Verbindung mit dem Web-Server aufbauen und dann per POST die Daten uebertragen. Im Anschluss holst Du die Antwort vom Server ab und gibst/wertest sie aus. Dabei wird also nicht die Seite gewechselt sonder das Script ruft lediglich eine andere Seite/Script auf und uebergibt die Daten per POST.
In meinem Tutorial HTTP ohne CURL gehe ich auch auf Daten-/Dateiversand mittels POST ein.
 
Ja Danke erst mal, das ist viel Quelltext.
Was genau muss ich machen.
Wenn ich jetzt das die Klasse und das TestScript habe
und dann die Post zeilen in post.php speichere
bekomme ich nur eine 404 meldung

Code:
Array
(
[raw] => HTTP/1.1 404 Not Found
Date: Wed, 24 May 2006 09:20:10 GMT
Server: Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1
Vary: accept-language,accept-charset
Accept-Ranges: bytes
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Content-Language: en

[httpversion] => 1.1
[ code ] => 404
[server] => Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1
[contentlength] => 
[contenttype] => text/html; charset=iso-8859-1
)
 
Mein Testscript ist flogendermaßen:
testscript.php hat gesagt.:
echo 'TestScript<hr>';
if (!empty($_POST))
{
echo '$_POST: ';
echo nl2br(print_r($_POST,true));
}

und mein postaufruf so:
post.php hat gesagt.:
require("httpconnection.class.php");

$http=new httpconnection("localhost");
$http->__construct("localhost",80,false,'PHP/ReptilerHTTPClass');
$data=$http->post("testscript.php","val1=a&val2=b","cookie1=a&cookie2=b","file1=httpconnection.class.php&file2=testscript.php","application/x-php,application/x-php","testuser","testpassword");

echo nl2br(print_r($data['head'],true));

// echo $data['body'];

unset($http);

also kaum was geändert:
vielleicht ist ja localhost nicht das richtige,
 
Ich glaub eher, dass der Pfad zum Script nicht ganz stimmt, denn zum Server wird ja verbunden, sonst haettest Du nicht die Header-Daten die Du da bekommst.
Hast Du testscript.php vielleicht in einem Unterverzeichnis unterhalb des DocRoot abgelegt?

Uebrigens, den Aufruf von __construct() kannst Du Dir sparen, das wird automatisch bei new() erledigt. Der einzige notwendige Parameter ist, wie Du ja auch da richtig angegeben hast, der Host mit dem verbunden werden soll. Alle anderen Parameter sind optional. Und werden halt mit den in der Klasse angegebenen Standardwerten belegt.
 
Ja habe ich
Verzeichnis ist unter htdocs: /POST_DEMO
hab es geändert, jetzt geht es wunderbar,

Danke für die Info mit dem Konstruktor, habe mich gerade erst mit den Klassen in PHP beschäftigt, das hilft mir auch sehr.

Danke für Deine schnellen Antworten. Jetzt komme ich weiter :) Ich dachte schon ich bekomme keine Lösung hin.
 
Zurück