Gästebuch Löschfunktion

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Gästebuch Löschfunktion

Beitrag 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
Zuletzt geändert von FarChris am 26.12.2008 22:46, insgesamt 4-mal geändert.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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).
KB:knigge
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag von FarChris »

edit: Habe nun die wichtigsten Dateien oben verlinkt.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag 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
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag 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.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag 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
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag 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
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

da steht in der url id=1 es müßte aber ID=1 sein :wink:
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag 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
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag 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:
Antworten

Zurück zu „Coding & Technik“