Seite 1 von 2

Gästebuch Löschfunktion

Verfasst: 26.12.2008 22:34
von FarChris
Hallo,
ich möchte für mein Gästebuch eine Lösch-Funktion haben.
Nachdem man sich im Adminbereich eingeloggt - und eine ID eingegeben hat (z.B. 1) gibt es unten bereit einen "Löschen" Link.

http://comuse.org/gb/admin.php

Dieser Link verweist auf folgende Datei/Code:

Code: Alles auswählen

<?php
$ID = $_GET["ID"];
if (isset($_GET["ID"]) && is_numeric($_GET["ID"])) {
@mysql_query("delete from eintraege where `ID` = ".$_GET["ID"]) or die("MYSQL-ERROR N".mysql_errno."<br />".mysql_error());
} 
?>
Leider wird der entsprechende Gästebucheintrag nicht gelöscht.
Was muss ich verändern, damit das Löschen eines Eintrags funktioniert?

Danke für Antworten!

edit: Hier noch ein paar Dateien:
GB Hauptdatei: http://www.comuse.org/gb/gb.txt
Anlegen eines Eintrags: http://www.comuse.org/gb/anlegen.txt
GB Eintrag edieren: http://www.comuse.org/gb/bearbeiten.txt
Übernehmen: http://www.comuse.org/gb/update.txt

Verfasst: 26.12.2008 22:39
von Pyramide
Besteht die Datei ausschließlich aus diesem Code? Wenn ja, dann fehlt der Code zum Aufbau der Verbindung usw. Wenn nein, bitte den Kompletten Code verlinken (KB:datei).

Verfasst: 26.12.2008 22:42
von FarChris
edit: Habe nun die wichtigsten Dateien oben verlinkt.

Verfasst: 26.12.2008 22:57
von Dave
Du solltest mal folgenden artikel lesen: http://de.wikipedia.org/wiki/SQL_Injektion
Und bevor du das machst ALLES vom Gästebuch erstmal offline nehmen!!!!!

MfG
Dave

Verfasst: 26.12.2008 23:23
von FarChris
Hallo,
mögliche Sicherheitsrisiken sind mir vorerst egal.
Mein Hauptziel ist es erst einmal, dass die Löschfunktion funktioniert.

Danach werde ich mich näher mit "SQL Injektion" befassen.

Danke.

Verfasst: 26.12.2008 23:30
von Dave

Code: Alles auswählen

<form action="bearbeiten.php" method="get">
Du schickst das löschen einer ID an die bearbeiten.php und nicht an die admin.php

MfG
Dave

Verfasst: 26.12.2008 23:36
von FarChris
hm, wo siehst du das?
Wenn man bei einem Eintrag z.B.
http://comuse.org/gb/bearbeiten.php?ID=1&go=Fortfahren

auf "Löschen" klickt, wird folgende Datei aufgerufen:
www.comuse.org/gb/delete.txt

Ich Browserfenster wird auch:
http://comuse.org/gb/delete.php?id=1

angezeigt, aber gelöscht ist der Eintrag mit der ID "1" trotzdem nicht.

Gruß
Chris

Verfasst: 26.12.2008 23:40
von Dave
da steht in der url id=1 es müßte aber ID=1 sein :wink:

Verfasst: 26.12.2008 23:52
von FarChris
oh Mann :D

ich hatte es früher so und dachte, dass es auf das echo $ID ankommt:
'delete.php?id=<? echo $ID; ?>

nun habe ich das klein id in ein großes verändert und es funktioniert nun.

Vielen Dank!


Habe noch eine Frage:
In der gb.php (auch oben verlinkt) habe ich den ersten Ansatz gemacht, damit man die Felder "Name" und "Text" nicht freilassen darf.

Leider weiß ich nicht, wie ich es vollenden kann.
Im Moment steht hier:
http://comuse.org/gb/gb.php

nur:
Bitte Namen eingeben.
Bitte einen Text eingeben.

Ich würde es aber gerne so verändern, dass die Texte erst dort stehen, wenn man eins/beide Felder leer gelassen hat und ich würde gerne, dass die Funktion auch läuft.

Vielleicht kannst du mir sagen, was ich bei den einzelnen Feldern (Name & Text" verändern muss.

Vielen Dank!

Gruß
Chris

Verfasst: 27.12.2008 00:10
von Dave
vor der ausgabe vom html ne abfrage?

Code: Alles auswählen

if (!isset($_POST['Name']) || empty($_POST['Name']))
{
....html....
}
Und das gleiche nochmals beim text :wink: