Doppelpost verhindern – Fehler im SQL-Query?

Hektik

Erfahrenes Mitglied
Hallo Leute!

Ich hab ein Problem, dass mich jetzt schon viel zu lange beschäftigt...

Vorgeschichte: Ich möchte eine Kommentarfunktion ähnlich einer Shoutbox für eine Bildergallerie erstellen. Klappt soweit alles, bis auf meinen Versuch, einen Doppelpost durch drücken der F5-Taste zu verhindern.

Ich versuche das, indem ich nachschaue, ob in der Datenbank bereits ein Eintrag mit selben Verfasser und Kommentar bei dem jeweiligen Bild der jeweiligen Gallerie existiert. Wenn ja, dann soll er den Eintrag NICHT noch einmal eintragen.

Hier mein Code:
PHP:
	// Doppelpost verhindern
	$sql = "	SELECT * 
				FROM kommentare 
				WHERE 
				( // kann ich weglassen oder nicht, hat keinen Effekt...
				name = '".$_POST['name']."' 
				AND kommentar = '".$_POST['kommentar']."' 
				AND gallerie = '".$name."' 
				AND bild = '".$images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1]."' 
				) // kann ich weglassen oder nicht, hat keinen Effekt...
				ORDER BY datum ASC";
	$result = mysql_query($sql);

// Meine Fehleranalyse liefert keine Fehler:	
	echo '<br>name: '.$_POST['name']; //gibt den selben Eintrag wie in der Datenbank wieder
	echo '<br>kommentar: '.$_POST['kommentar']; //gibt den selben Eintrag wie in der Datenbank wieder
	echo '<br><br>bild: '.$images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1]; //gibt den selben Eintrag wie in der Datenbank wieder
	echo '<br>gallerie: '.$name; //gibt den selben Eintrag wie in der Datenbank wieder
	echo '<br>'.mysql_num_rows($result) // liefert mir 0 <--- da liegt der Hund, denke ich

if(mysql_num_rows($result) > 0) {
		echo '<b>Ein <font color="darkred">identischer Kommentar</font> wurde bereits verfasst!</b>';

Der Querry liefert also 0 Zeilen in der Abfrage? Warum? Es sind in der Datenbank 100% passende Einträge vorhanden. Ich weiß nicht mehr weiter, jemand von euch eine Idee?


EDIT:

Danke, hat sich erledigt, ich hab den Fehler doch noch selbst gefunden. Es lag daran, dass ich die Einträge zwar mit addslashes(htmlspecialchars()) ablege, bei der Doppelpostüberprüfung jedoch nicht mit dieser Option auslese. Einfach das hinzugefügt und nun gehts :)
 
Zuletzt bearbeitet:
Zurück