tk: php header("location ") oder window.close ohne funktion

Beitrag lesen

Hallo,

Bei diesem kurzen DELETE script funktioniert das überhaupt nicht. Der PHP Code wird ausgeführt, anschließend bleibt die Seite weiß.

Wie ist display_errors eingestellt? Eine weiße Seite deutet darauf hin dass das Script aufgrund eines Fehlers abgebrochen wurde.

$Entfernen = $db->query("DELETE FROM " .$TYPE. " WHERE ID = $ID1 ");

Wie Rolf schon schrieb: das ist ein gefährliches Sicherheitsscheunentor (eine Lücke ist das schon nicht mehr)! Das zu beheben wäre ganz einfach: statt $ID1 ein »?« (oder einen benannten Parameter bei PDO) in den Query schreiben, prepare() statt query() verwenden und $ID1 in einem Array an execute() übergeben, fertig.

$Entfernen->execute() or die($db->error);

Mal abgesehen davon dass ein execute() wenig sinnvoll ist wenn du query() verwendest (das braucht man nur bei prepare()): Was verwendest du denn um auf die Datenbank zuzugreifen? Wenn du mysqli verwendest, enthält $Entfernen an dem Punkt ein true. Boolsche Werte haben aber natürlich keine Methode execute() und damit schlägt die Zeile mit einem Fatal Error fehl – das Ergebnis (bei display_errors=0) ist eben eine leere Seite.

<a href="del.php?NEWS=2">click</a>

Aktionen die Daten verändern (anlegen, ändern oder löschen) sollten per POST-Request erfolgen, nicht per (GET-)Link.

Gruß,
Tobias