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.
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.
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;
}
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.
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.
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().