TiMmEkK Geschrieben 8. Januar 2007 Teilen Geschrieben 8. Januar 2007 hey... habe mal nen Problem! mein script will einfach nicht den datensatz aus der mysqltabelle löschen! wo liegt hier der fehler? <html> <p align="center"> </p> <table border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" bordercolor="#C0C0C0" width="800"> <tr> <td align="center" width="20"><b>ID</b></td> <td align="center" width="100"><b>Wann</b></td> <td align="center" width="40"><b>Vorname</b></td> <td align="center" width="40"><b>Nachname</b></td> <td align="center" width="100"><b>von</b></td> <td align="center" width="100"><b>bis</b></td> <td align="center" width="300"><b>Begründung</b></td> <td align="center" width="100"><b>löschen / bearbeiten</b></td> </tr> <? error_reporting(E_ALL); include ("config.inc.php"); $connect = @mysql_connect($host, $user, $password) OR die(mysql_error()); mysql_select_db($db, $connect) OR die(mysql_error()); $result = mysql_query("SELECT * FROM $db ORDER by zeit DESC",$connect) or die (mysql_error()); while($row = mysql_fetch_object($result)) { print '<tr>'; print '<td align="center" width="16">'.$row->ID.'</td>'; print '<td align="center" width="260">'.date("d.m.Y - H:i",$row->zeit).'</td>'; print '<td align="center" width="4">'.$row->vorname.'</td>'; print '<td align="center" width="6">'.$row->name.'</td>'; print '<td align="center" width="6">'.$row->datumvon.'</td>'; print '<td align="center" width="79">'.$row->datumbis.'</td>'; print '<td align="center" width="6">'.$row->statement.'</td>'; $ID = $row->ID; print '<td align="center" width="261"> <a href=auslesen.php?loeschen=1&ID='.$ID.'> <img src="gfx/b_drop.png" width="16" height="16"></a> || <a href=auslesen.php?action=bearbeiten&ID='.$ID.'><img src="gfx/b_edit.png" width="16" height="16"></a></td>'; print '</tr>'; } if ($loeschen == '1') { mysql_query("DELETE FROM $db WHERE ID = '$ID'",$connect) or die (mysql_error()); } mysql_close($connect); ?> </table> </body> </html>[/PHP] danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carnie Geschrieben 8. Januar 2007 Teilen Geschrieben 8. Januar 2007 Als erstes mal die Eisntellung register_globals checken. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 8. Januar 2007 Teilen Geschrieben 8. Januar 2007 Und auf jeden Fall den übergebenen Wert vor der Verwendung im Query validieren und am besten zusätzlich noch maskieren: http://forum.fachinformatiker.de/skript-webserverprogrammierung/79449-php-datenbanksicherheit-strings.html In Deinem Beispiel würde ein if ($_REQUEST['loeschen'] == '1') { mysql_query("DELETE FROM $db WHERE ID = '".intval($_REQUEST['ID'])."'",$connect) or die (mysql_error()); } schon helfen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
incredible_ente Geschrieben 8. Januar 2007 Teilen Geschrieben 8. Januar 2007 DELETE FROM $db WHERE ID = '$ID' Hast du mal getestet ob das Query überhaupt funktionert? Direkt im phpMyAdmin und nimm einfach einen Beispiel Wert... Bin zwar ein Anfänger und mit PHP auf dem Kriegsfuss... Aber muss es nicht DELETE * FROM ... heissen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 8. Januar 2007 Autor Teilen Geschrieben 8. Januar 2007 wow. es geht so wie monty meinte! vielen dank! und wofür war das register globals? das hab ich schon von mehreren gehört! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hasnoname Geschrieben 8. Januar 2007 Teilen Geschrieben 8. Januar 2007 irgendwie kann ich mir nocht vorstellen, dass dein code funktioniert, denn: mysql_select_db($db, $connect) mysql_query("DELETE FROM $db WHERE ID = '$ID'",$connect) fällt dir was auf? löschen tust du aus der tabelle, nicht aus der datenbank... ansonsten ist dein code extrem unübersichtlich und sicherheitsmäßig... naja null checks halt... zu register globals etc: PHP: Hypertext Preprocessor die php seite ist wirklich top! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 9. Januar 2007 Autor Teilen Geschrieben 9. Januar 2007 doch, so wie monty geschrieben hat funktioniert es ganz gut! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hasnoname Geschrieben 9. Januar 2007 Teilen Geschrieben 9. Januar 2007 hmm ich könnte mir vorstellen, dass man alternativ eben wie du ne db angeben kann, sofern eindeutig ist, was gemeint ist. aber wenn du z.b. 2 tabellen mit ner spalte ID in der db hast, woher soll mysql wissen, welcher eintrag gemeint ist? selbst wenn es funktioniert, es ist falsch und wird dir irgendwann mächtig probleme bringen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 9. Januar 2007 Autor Teilen Geschrieben 9. Januar 2007 kann sein! aber das ist ein anderes problem nun funktioniert es ja so wie ich will Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hasnoname Geschrieben 9. Januar 2007 Teilen Geschrieben 9. Januar 2007 das sagen sich die oracle menschen wahrscheinlich auch immer *scnr* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 9. Januar 2007 Autor Teilen Geschrieben 9. Januar 2007 oracle kenn ich nicht mal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
diiimo Geschrieben 16. Januar 2007 Teilen Geschrieben 16. Januar 2007 Ich hoffe du lässt dieses Script nicht Öffentlich laufen, es wäre sonst möglich das jeder jeden Datensatz bei dir löschen kann, da du den Lösch Befehl inkl. id per Get übergibst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 16. Januar 2007 Autor Teilen Geschrieben 16. Januar 2007 nene.... ist nur bei uns intern! ista uch nichts schlimmes, was damit angerichtet werden kann Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hasnoname Geschrieben 16. Januar 2007 Teilen Geschrieben 16. Januar 2007 na wenn die ganze telekom so arbeitet, dann gute nacht, kein wunder dass da nie was geht... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TiMmEkK Geschrieben 16. Januar 2007 Autor Teilen Geschrieben 16. Januar 2007 hab ich gesagt, dass es für die telekom ist? man man man... es ist für ein paar azubis und mich ... stell dich mal nicht so an... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.