Hello,
Also wenn ich es so mache dann kommt 0 heraus. Was kann ich nun daraus schliessen.?
Das Du den Fehler gefunden hast und er nun beseitigt ist.
Das war Dei Statement:
UPDATE form ;; <-- 2 Fehler
SET
titel='$_POST[titel]',
text='$_POST[text]',
autor='$_POST[autor]',
datum='$_POST[datum]',
datum1='$_POST[datum1]'
WHERE
datum1='$_POST[datum1]'
Ich habe darin auf Anhieb zwei Fehler entdeckt.
Außerdem steckt eine Unsicherheit bezüglich der Variablen drin, auf die ich mich nicht einlassen würde.
Die Elementebezeichner der Arrays würde ich, auch wenn es so funktioniert, nicht ohne Häkchen benutzen. Wenn man dieselbe Variable dann nämlich in einen anderen Kontext setzt, was hier notwenid ist, dann kann es zur Verwechslung nit Konstanten kommen.
Eine dicke fette Sicherheitslücke ist außerdem drin.
Leider warnt einen mysql_error() davor nicht.
Lies Dir dazu mal bei Wikipedia das Kapitel über SQL-Injection durch
http://de.wikipedia.org/wiki/SQL_Injection
Und bei PHP gibt es auch eins:
http://de3.php.net/manual/de/security.database.sql-injection.php
§sql="
UPDATE form ;; <-- noch 2 Fehler
SET
titel='".mysql_real_escape_string($_POST['titel'],$con)."',
text='".mysql_real_escape_string$_POST['text'],$con)."',
autor='".mysql_real_escape_string$_POST['autor'],$con)."',
datum='".mysql_real_escape_string$_POST['datum'],$con)."',
datum1='".mysql_real_escape_string$_POST['datum1'],$con)."'
WHERE
datum1='".mysql_real_escape_string$_POST['datum1'],$con)."'";
$res = mysql_query($sql, $con(;
if ($mysql_errno($con) > 0)
{
## Fehlerbehandlung
## $mysql_error($con) enthält jetzt die Fehlerbeschreibung
}
else
{
## weitermachen
}
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
