Vinzenz Mai: Notice: Undefined index:

Beitrag lesen

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