dedlfix: Session problem, speichert variable nicht.

Beitrag lesen

Hi!

SELECT Name, Vorname, Strasse, Ort, PLZ, index
FROM User
WHERE index='.$_POST['index'].';

Sagt dir das Thema Kontextwechsel (Artikel-Vorabversion) vor allem in Bezug auf die Sicherheit und Robustheit deines Scripts etwas?

$datenarray=mysql_fetch_row($ergebnis);

while($datenarray){

Das ist vermutlich nicht so, denn das ergäbe eine Endlosschleife, wenn es mindestens einen Datensatz gibt. Und das dürftest du daran sehen, dass der Browser ewig wartet und vielleicht sogar eine Timeout-Meldung bringt. Es sei denn, dein Code sieht in Wirklichkeit anders aus.

Wenn mysql_fetch_row() einen Datensatz holen konnte, ist das Rückgabeergebnis ein nicht leeres Array, das zu true evaluiert, wenn man es in einen boolschen Kontext (hier: while-Bedingung) bringt. Da du nie wieder eine Fetch-Funktion ausführst oder $datenarray anderweitig änderst, wird while immer weiter laufen.

Angenommen, dein Code sieht in Wirklichkeit so aus:

while ($datenarray = mysql_fetch_row($ergebnis)) {
    ...
  }

wodurch wird veranlasst, dass das while beendet wird oder beendet werden kann? Ein

var_dump($datenarray);

sollte dir die Erleuchtung bringen. Das ist übrigens eine Kontrollausgabe. Diese sind sehr hilfreich, um Wunsch und Wirklichkeit miteinander zu vergleichen, um die tatächlichen Variableninhalte mit der eigenen Vorstellung abzugleichen.

Obendrein, solltest du beim Entwickeln das error_reporting auf E_ALL stellen, um weitere hilfreiche Hinweise auf Fehlerquellen zu bekommen.

<input type="text" name="name" value=" <?php echo "$datenarray->name" ?>  ">

Die PHP-Unsitte, Variablen in Anführungszeichen zu setzen, stirbt wohl auch nicht aus.

Lo!