Hi!
- Wenn ich die Var-Inhalte per Get in der URL übergebe funktioniert das Skript. Habe zu Beginn des Skirpts immer folgenden Aufruf:
Das kann nicht weiter relevant sein, wenn dabei nicht noch andere Nebenwirkungen auftreten.
- Hab den Rest des Codes aus der Datei komplett raus genommen (sodass nichts mehr danach passiert).
Dann sollte es also nichts mehr geben, das unbemerkt anschließend ein weiteres Update ausführt. Wenn es doch noch passiert, dann schau auch mal ins Webserver-Logfile, wie oft das Script aufgerufen wird.
Hmm, aber wenn nichts mehr drin ist als nur noch die Ausführung des Update, dann muss doch was mit dem Update schieflaufen. In dem Fall würde ich klein anfangen. Erst das Update mit festem Statement - das sollte problemlos gehen. Alles nachprüfen: Funktionsrückgabewerte, besonders die der mysql_*-Funktionen. (Nimm dazu immer var_dump(), das zeigt dir im Gegensatz zum echo alles genau an.) Anschließend schrittweise erweitern, Variablen statt fester Werte (Kontextwechsel beachten), noch mehr Code hinzufügen, bis der Fehler wieder auftritt.
foreach ($_POST as $key => $val) {
$$key = $val;
}
foreach ($_GET as $key => $val) {
$$key = $val;
}
Diesen Unsinn bitte komplett streichen und direkt mit dem $\_GET/$\_POST-Array arbeiten. Du bildest sonst die Funktionalität von register\_globals nach. Zusammen mit nachlässiger Programmierung holst du dir mehr Probleme als die Tippersparnis wieder rausholen kann. Du legst damit ungeprüft, alles was irgendwer als Parameter an dein Script sendet, als Variable an. Und wenn du deine eigenen Variablen vor der Erstverwendung nicht definitiv initialisert, arbeitet dein Script mit von dir nicht vorgesehenen Werten.
Lo!