$_POST[... Index Probleme
Hallo Leute,
ich habe ein kleines Problem mit der Var $_POST. Ich habe ein PHP-Script, in dem beim ersten Aufruf ein Formular erzeugt wird. Die Formulardaten werden mit der Methode: POST übermittelt. Das Ziel ist die Datei selbst. Wenn ich nun die Formulardaten auswerten (sprich in eine lokale Variable) schreiben möchte, bekomme ich folgende Meldung: Notice: Undefined index: user in g:datawwwtheshadowrunneradminlogin.php on line 47 Code: $user = $_POST['user']; Ich weis zwar, das es sich hier nur um eine Notice handelt, also keinen Fehler, aber die Variabelen sind nach meiner Meinung gesetzt. Dies schließe ich daraus, wenn ich nämlich die Zuweisung weg lasse und sie gegen ein: echo $_POST['user']; austausche, gibt es keine Notice und der Wert wird ausgegeben. Alternative habe ich es schon mit $_REQUEST versucht. Mein System: OS: Win2kSP3 Webserver: Apache 1.3.24 PHP: 4.3.2 |
Hallo crusader,
wie Du schon gesagt hast, ist nur eine "Notice". Eine Möglichkeit: if(isset($_POST['user'])) { $user = $_POST['user']; } Grüsse chris17 |
Ja, aber die Variable ist doch gesetzt und hat einen Inhalt.
Also sollte diese Meldung doch nicht kommen. Die Meldung kommt auch nicht wenn das Element des Arrays mit Echo ausgebe. Nur beim umkopieren entsteht diese Meldung. |
Hi,
die Variable ist aber erst nach dem Posten gesetzt. Zitat:
PHP-Code:
|
Bei mir gibt echo den Wert aus.
Code mit Meldung: case 1: $user = $_POST['user']; // undefinded index user $pw = $_POST['pw']; // undefinded index pw wenn ich nun diesen code verwende: case 1: $echo $_POST['user']; //Ausgabe Wert user $echo $_POST['pw']; //Ausgabe Wert pw $user = $_POST['user']; //Keine Meldung $pw = $_POST['pw']; //Keine Meldung Sprich, wenn ich vorher ein echo mache, funktioniert die Zuweisung. Und hier liegt das Problem. Aber warum? Kann das vielleicht was mit meinen Einstellungen in der php.ini zu tun haben? In deinem Fall Chris17 ist es klar, dass die Meldung kommt. Du versuchst die Variable auszugeben, obwohl diese noch nicht vom Formular gesetzt wurde. Dieses Problem hab ich mit switch case gelöst. Mein Script durchläuft verschieden Anmeldestatien. session_start(); session_register("anmeldestatus"); switch($HTTP_SESSION_VARS['anmeldestatus']) { case NULL: //Variable hat Wert NULL /*Hier wird das Formular aufgebaut. Die Formulardaten werden wieder an das gleiche Script geschickt*/ $HTTP_SESSION_VARS['anmeldestatus'] = 1; break; case 1: /*Formulardaten auswerten*/ $user = $_POST['user']; $pw = $_POST['pw']; ... /*wenn Formulardaten ok, dann redirect*/ break; } |
Moin,
Zitat:
Zeigt alle Fehler, ausser Notizen. error_reporting = E_ALL & ~E_NOTICE In der php.ini ist das schön dokumentiert, was es für Möglichkeiten gibt. Gruss chris17 |
Also, mit dem Eintrag, dass alle Notices nicht mehr angezeigt werden, ist mir auch nícht geholfen. Jetzt funktioniert die SQL Afrage nicht mehr, da die Variablen leer sind.
Vielleicht noch eine andere Idee? Aus dem Quellcode den ich oben gepostet habe kann man hoffentlich mein System erkennen. |
Hallo,
Du hast in der php.ini am error_reporting geschraubt und deswegen funktioniert jetzt Deine SQL Abfrage nicht mehr?!? Aber Dein Skript hatte vorher funktioniert, Du wolltest ja nur diese Notizen vom Schirm haben... Sorry, hier weiss bestimmt noch jemand Rat. Grüsse |
Das Problem liegt darin, das ich mit dem $_POST Array meine SQL Abfrage zusammen baue.
Die Notizen wollte ich nicht weg haben, sondern wollte eigentlich wissen warum die da sind. Es verwundert mich nämlich das die Notiz kommt, wenn ich dieses Element einer anderen Variable zuweise und wenn ich statt der Zuweisung eine Ausgabe des Elementes mache funktioniert die Geschichte. Also, ein Wiedespruch: Wie kann eine Ausgabe funktionieren und eine Zuweisung nicht. Kombiniere ich beides hintereinander echo $_POST $a = $_POST funktioniert die Geschichte auch einwandfrei. Aber so kann es das ja nicht aufbauen. Erstens unsauber, zweitens mach ich später im script noch ein header(). |
PHP-Code:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:23:31 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.