Veröffentlicht 29. August 200223 j Hallo Leute! Bin PHP-Anfänger und hab da ein Problem. Ich habe ein Formular erstellt, welches Mail, Name usw an eine PHP-Datei mit POST weitergeben soll. Schreibe ich jetzt in der Antwortdatei folgendes echo $variable_vom_Formular; passiert einfach garnichts. Lass ich mir aber das Array mit den übertragenen Werten ausgeben foreach($HTTP_POST_VARS as $key=>$wert) { echo $key." = ".$wert; } sehe ich alle Werte, die ich im Formular eingetragen sind. Hoffe Ihr könnt helfen. Gruß TVC#5
29. August 200223 j Hallo, wenn du ein Array uebergibst, dann musst du es auch als solches ansprechen. Probier mal echo werte_von_Formualr{0]; sollte dann der erste wert sein
29. August 200223 j Mit dem Array meine ich das Array, welches Standardmäßig erzeugt beim übertragen von Datei zu Datei verwendet wird $HTTP_POST_VARS. Wenn ich dieses Ausgebe, seh ich die daten. Wenn ich allerdings die Variablennamen aus dem Formular nehme(zb name) und möchte name mit echo $name ausgeben kommt nichts.
29. August 200223 j Hmmm, komisch Bei mir geht das einwandfrei, poste doch mal den Code von deinem Formular und der php Seite.
29. August 200223 j Formular: <form method="POST" action="antwort.php"> <p>Daten eingeben</p> <p>Vorname</p> <p><input type="text" name="vorname" size="20"></p> <p> </p> <p>Name</p> <p><input type="text" name="name" size="20"></p> <p> </p> <p>E-Mail</p> <p><input type="text" name="email" size="30"></p> <p> </p> <p><input type="submit" value="Abschicken" name="submit"></p> </form> Antowort.php: <?php echo $vorname."<br>"; //hier kommt keine Ausgabe echo $name."<br>"; foreach($HTTP_POST_VARS as $wert=>$key) { echo $wert." = ".$key."<br>"; //hier kommt eine Ausgabe } ?>
29. August 200223 j Hmm, :confused: jetzt muss ich wohl an einen kompetenteren Mann abgeben, dein Code funktioniert bei mir einwandfrei. Die Veariablen werden ueber den Echo-Befehl so angezeigt wie sie sollen.
29. August 200223 j In der php.ini ist die anweisung register_globals auf off gesetzt (standardmaessig seit Version 4.2). Daher musst du die uebergebenen Werte entweder ueber $_POST['feldname'] ansprechen (bzw $HTTP_ geht auch noch, sollte aber nicht mehr verwendet werden) oder register_globals wieder auf on setzen, was aber aus Sicherheitsgruenden nicht unbedingt zu empfehlen ist. Michael
30. August 200223 j Wenn man keinen Zugriff auf die PHP.ini hat und zu faul ist kann man auch alle Post variablen mit dieser Funktion übernehmen: function POST_VARS() { global $HTTP_POST_VARS; reset($HTTP_POST_VARS); while (list ($key, $val) = each ($HTTP_POST_VARS)) { $global = "global \$".$key.";"; eval($global); $$key = $val; } [/PHP] Kann man auch für get umbasteln oder Filter-Funktionen einbauen z.B. das er nur Variablen übernimmt, die einen bestimmten prefix haben oder sowas ... Spoom
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.