PHP/MySQL: Gästebuch edit Funktion

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

PHP/MySQL: Gästebuch edit Funktion

Beitrag von FarChris »

Hallo,
ich habe ein kleines Gästebuch erstellt.
www.comuse.org/gb/gb.php

Dazu bin ich gerade dabei, eine edit-Funktion zu erstellen:
www.comuse.org/gb/bearbeiten.php

In dieser Datei treten allerdings mysql_fetch_array-Fehler auf.
Durch einen Befehl habe ich weitere Details der Meldung anzeigen lassen.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Hier ist die bearbeiten.php als txt Datei:
www.comuse.org/gb/bearbeiten.txt

Ich hoffe jemand kann mir helfen.

edit: Am liebsten wäre es mir, wenn man eine ID eines Eintrages in ein Feld eintragen könnte, diese abschickt und man dann die Eingaben der ID (Name, E-Mail etc.) ändern kann.

Danke!
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Du solltest den Fehler der Nichtübergabe einer ID abfangen (z.B. mit isset()), dann passt das auch besser.

Probier' mal:
http://www.comuse.org/gb/bearbeiten.php?ID=1

ID muss gross geschrieben werden bei Deiner Variante.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag von FarChris »

Hallo, danke.
Wie genau sollte es dann heißen?
isset($ID)) ?

Habe noch ein weiteres Problem:
Wenn ich einen Eintrag ändere,
z.B. http://www.comuse.org/gb/bearbeiten.php?ID=52

dann wird dieser nicht gespeichert.
An was liegt das nun wieder?

Hier die update.txt:
http://www.comuse.org/gb/update.txt

Danke! :)
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Welchen Sinn hat das?

Code: Alles auswählen

header("location:bearbeiten.php");
Und die Sache mit der ID könntest Du so angehen:

Code: Alles auswählen

if (isset($_GET['ID']) && $_GET['ID']) 
{
	$id = intval($_GET['ID']);
	$auswahl = mysql_query("SELECT * FROM eintraege WHERE ID = $ID");
}
else
{
	exit("ID vergessen!");
}
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag von FarChris »

Hallo,
leider erscheint immer noch eine Fehlermeldung:
http://comuse.org/gb/bearbeiten.php

--------
Ich habe nun das "header:location" rausgenommen.
Leider wird der Eintrag nicht geändert:
http://www.comuse.org/gb/bearbeiten.php?ID=59

Vielen Dank für deine Hilfe!
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Darf ich mal die bearbeiten.php sehen?

Und ersetze mal in der update.php

Code: Alles auswählen

mysql_query($sql_update);
gegen:

Code: Alles auswählen

$result = mysql_query($sql_update);
if (!$result) {
    die('Ungültige Abfrage: ' . mysql_error());
}
Und wozu das?

Code: Alles auswählen

$open = mysql_query("SELECT * FROM eintraege WHERE ID=$ID ORDER BY ID ASC");
Das scheitert doch schon wieder an $ID.
Und beschäftige Dich auch mit SQL Injections. (Das nur am Rande.)
Klick
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag von FarChris »

Hallo,
hier die aktuelle bearbeiten und update.txt:

www.comuse.org/gb/bearbeiten.txt

www.comuse.org/gb/update.txt


Nachdem ich den Code in der update.php geändert habe, erscheint folgende Meldung:
Ungültige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=' at line 6
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Einen Tip gebe ich noch:

Code: Alles auswählen

$_GET['ID']
ist NICHT

Code: Alles auswählen

$_GET['id']
Du übergibst die ID in Kleinbuchstaben also id.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
FarChris
Mitglied
Beiträge: 1150
Registriert: 29.10.2004 22:40

Beitrag von FarChris »

Danke.
Ich habe die Txt Dateien noch einmal aktualisiert.

Ich hab die IDs nun geändert.
Die Update-Funktion funktioniert leider immer noch nicht. Es kommt immer nur diese SQL-Fehlermeldung.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Zum einen hast Du ein Komma in update.php zuviel

Code: Alles auswählen

Text = '".$Text."',
Da muss das Komma weg.

zum anderen ist ID mit $_GET['id'] abzufragen also KLEIN id.
in update.php finde

Code: Alles auswählen

$ID = $_GET['ID'];
austauschen gegen:

Code: Alles auswählen

$ID = $_GET['id'];
Und ich weise nochmals auf die SQL Injections hin!
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „Coding & Technik“