Samantha: Notice: Undefined index:

Hy!!
Brauche etwas hilfe!!

<?php session_start();  
   include("dbanbindung.php");  
   error_reporting(E_ALL);  
  
   	   $db_ben = $_POST["name"];  
	   $db_pword = $_POST["pass"];  
	   $db_pword = md5($db_pass);  
	   $db_vname = $_POST["vor"];  
	   $db_nname = $_POST["nach"];  
	   $db_amail = $_POST["mail"];  
  
	  
	$query="UPDATE user SET username = '$db_ben', passwort = '$db_pword', vorname = '$db_vname', nachname = '$db_nname', email = '$db_amail' WHERE username = '".$_SESSION["username"]."';";  
	//echo $query;  
	$ergebnis = mysql_query($query)  
  
	or die("Kein Ergebnis ".mysql_error());  
  
	$_SESSION["username"] = $db_ben;  
  
?>  
  
<html>  
<head>  
<title>Übung 1</title>  
<link rel="stylesheet" type="text/css" href="style.css">  
</head>  
<body>  
<?php if (!isset($_POST['up'])) { ?>  
 <form name="form" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?section=item">  
  
	Username:<br>  
		<input type="text" size="25" name="name"><br>  
	Passwort:<br>  
		<input type="password" size="25" name="pass"><br>  
	Vorname:<br>  
		<input type="text" size="25" name="vor"><br>  
	Nachname:<br>  
		<input type="text" size="25" name="nach"><br>  
	E-mail:<br>  
		<input type="text" size="25" name="mail"><br>  
	<input type="submit" value="Update" name="up"><br>  
  
</form>  
<?php } ?>  
</body>  
</html>  

Ich weiß nicht, was da Falsch ist! Bei den PHP Variablen kommt immer der Fehler "Notice: Undefined index:"

Für mich sieht alles richtig aus!!

LG Samantha

  1. Salut

    Ich weiß nicht, was da Falsch ist! Bei den PHP Variablen kommt immer der Fehler "Notice: Undefined index:"

    Auf welcher Zeile? Wie lautet der Fehler genau?
    Und was sagt: print_r($_POST) ?

    Gruss!

    1. Naja wie schon gesagt, bei allen PHP Variablen:
      Notice: Undefined index: name in /home/s10int_08108/public_html/INT/ubung1/item.php  on line 5

      Notice: Undefined index: pass in /home/s10int_08108/public_html/INT/ubung1/item.php on line 6

      Notice: Undefined variable: db_pass in /home/s10int_08108/public_html/INT/ubung1/item.php on line 7

      Notice: Undefined index: vor in /home/s10int_08108/public_html/INT/ubung1/item.php on line 8

      Notice: Undefined index: nach in /home/s10int_08108/public_html/INT/ubung1/item.php on line 9

      Notice: Undefined index: mail in /home/s10int_08108/public_html/INT/ubung1/item.php on line 10

      Notice: Undefined index: username in /home/s10int_08108/public_html/INT/ubung1/item.php on line 13

      Lg

  2. Hi,

    Ich weiß nicht, was da Falsch ist! Bei den PHP Variablen kommt immer der Fehler "Notice: Undefined index:"

    JFGI, Baby :-)

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hy!!

      Wenn mir das etwas geholfen hätte, dann hätte ich hier nicht fragen müssen!! ;-)

      Lg Samantha

      1. Hi,

        Wenn mir das etwas geholfen hätte, dann hätte ich hier nicht fragen müssen!! ;-)

        Was hilft dir daran denn bitte nicht?

        Bereits der erste Treffer erklärt das ganze u.a. auch an einem Beispiel, wo es um Einträge im $_POST-Array geht. Die sind nun mal nicht vorhanden, wenn das Script per GET aufgerufen wurde - also fragst du vor dem Zugriff auf diese Werte ab, ob sie existieren.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  3. Hallo,

    [code lang=php]<?php session_start();
       include("dbanbindung.php");
       error_reporting(E_ALL);

    das ist zum Üben und beim Entwickeln gut, das folgende Umkopieren nicht gut - und wie Chris Dir bereits mitgeteilt hat, prüfst Du nicht, ob es diese Einträge im Array $_POST überhaupt gibt.

    $db_ben = $_POST["name"];

    wozu speicherst Du den Inhalt dieses Arrayeintrages in einer Variablen, nur um

    $db_pword = $_POST["pass"];

    sie in der folgenden Zeile wieder zu überschreiben?

    $db_pword = md5($db_pass);

    Vermutlich mit einer Variablen, die es überhaupt nicht gibt.

    $db_vname = $_POST["vor"];
       $db_nname = $_POST["nach"];
       $db_amail = $_POST["mail"];

    $query="UPDATE user SET username = '$db_ben', passwort = '$db_pword', vorname = '$db_vname', nachname = '$db_nname', email = '$db_amail' WHERE username = '".$_SESSION["username"]."';";

    Es fehlt die kontextgerechte Behandlung der Daten im SQL-Kontext und selbstverständlich willst Du ein Update auch nur vornehmen, wenn es in $_POST auch entsprechende Daten gibt.

    //echo $query;
    $ergebnis = mysql_query($query)

    or die("Kein Ergebnis ".mysql_error());

    die() ist keine echte Fehlerbehandlung, aber zu Übungszwecken kann man es mal gelten lassen.

    $_SESSION["username"] = $db_ben;

    Browser in den Quirksmodus zu schicken, ist nicht die beste Idee.

    <html>
    <head>
    <title>Übung 1</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>

    Hier weißt Du, wie man überprüft, ob ein bestimmter Arrayeintrag gefüllt ist.

    <?php if (!isset($_POST['up'])) { ?>

    $_SERVER['PHP_SELF'] solltest Du aus Sicherheitsgründen durch $_SERVER['SCRIPT_NAME'] ersetzen.

    <form name="form" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?section=item">

    wie wäre es mit http://de.selfhtml.org/html/formulare/strukturieren.htm#label@title=label-Elementen für die Beschriftung?

    Username:<br>
    <input type="text" size="25" name="name"><br>
    Passwort:<br>
    <input type="password" size="25" name="pass"><br>

    Für mich sieht alles richtig aus!!

    Für mich nicht!

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      mir ist bei deinen didaktisch durchaus wertvollen Beiträgen schon mehrmals aufgefallen, dass du beim Kommentieren von Quellcode die "übliche" Reihenfolge gern umkehrst.

      Browser in den Quirksmodus zu schicken, ist nicht die beste Idee.

      <html>
      <head>

      Hier weißt Du, wie man überprüft, ob ein bestimmter Arrayeintrag gefüllt ist.

      <?php if (!isset($_POST['up'])) { ?>

      wie wäre es mit http://de.selfhtml.org/html/formulare/strukturieren.htm#label@title=label-Elementen für die Beschriftung?

      Username:<br>  
        <input type="text" size="25" name="name"><br>  
      Passwort:<br>  
        <input type="password" size="25" name="pass"><br>  
      

      Die meisten Autoren notieren den Kommentar *nach* dem Code, dem er zugeordnet ist; du machst das anscheinend gern umgekehrt. Das irritiert beim Lesen: Man liest den Kommentar, stutzt, geht mit den Augen zurück zum vorausgegangenen Stück Code und fragt sich, wo der Zusammenhang ist.
      Auch im natürlich-alltäglichen Umfeld zeige ich normalerweise erst etwas, bevor ich eine Bemerkung dazu abgebe. Was bringt dich dazu, dieses typische Schema umzukehren?

      So long,
       Martin

      --
      Um mit einem Mann glücklich zu werden, muss eine Frau ihn sehr gut verstehen und ein bisschen lieben.
      Um mit einer Frau glücklich zu werden, muss ein Mann sie sehr lieben und darf gar nicht erst versuchen, sie zu verstehen.
      1. Hallo Martin,

        mir ist bei deinen didaktisch durchaus wertvollen Beiträgen

        danke für die Blumen

        schon mehrmals aufgefallen, dass du beim Kommentieren von Quellcode die "übliche" Reihenfolge gern umkehrst.

        Ein wenig Macht der Gewohnheit: ich schreibe sehr oft zuerst fast ausschließlich Kommentare und anschließend den Code. Du hast bei Funktionen typischerweise einen Kommentarheader als Zusammenfassung *vor* der Funktionsdefinition selbst.

        Bei der Aufbereitung von fremdem Code hier im Forum achte ich nicht besonders auf die Reihenfolge, bin aber in aller Regel innerhalb eines Beitrages konsequent. Die hier von mir vorgestellte Reihenfolge eignet sich eher, um eigenes Neues vorzustellen, aber nicht so gut, um Codeautoren die Auswirkung ihres Schaffens zu erläutern.

        Freundliche Grüße

        Vinzenz

  4. Neben den zahlreichen richtigen und wichtigen Anmerkungen hier, die du dir dringend zu Herzen nehmen solltest noch eine Antwort in Kurzform:

    Notice: Undefined index:
    Das ist erst mal kein "Fehler" sondern ein Hinweis. Das heisst dein Script würde wahrscheinlich problemlos laufen wenn man es ignoriert. Aber trotzdem hat eine solche Warnung natürlich ihren Sinn und sollte behoben werden. Sie heißt schlicht und einfach nichts anderes als "Achtung - du greifst auf ein Element eines Arrays zu, das nicht definiert ist" Im übertragenen Sinne - du versuchst an der Tür des Hauses Parkstrasse 8 zu klingeln bevor es überhaupt gebaut wurde. Der normale Weg ist erst zu schauen ob es da überhaupt ein Haus gibt (=testen ob ein Element des Arrays überhaupt belegt wurde), bevor du versuchst auf die Klingel zu drücken.