Abfrage meldet keinen Fehler?!

Eiszwerg

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade dabei eine Newsletter-Anmeldung zu erstellen.
Das Eintragen bereitet keinerlei Probleme, allerdings läuft beim Austragen etwas schief.

Bei der Anmeldung wird eine e-Mail an den Abonnenten gesandt, welche einen Link zum Abmelden beinhaltet. "...?action=nonews&mail=123@abc.de"

Wenn ich nun diesen Link benutze, löscht er ohne Probleme die Mail-Adresse aus der DB. Allerdings kann ich den Link so oft anklicken wie ich will und bekomme immer die Meldung, dass die Abmeldung funktioniert hat; egal, ob die Adresse vorhanden ist oder nicht.
Das soll aber so nicht. Wenn die Adresse nicht da ist, soll eine Fehlermeldung kommen.

Mein Versuch:
PHP:
if ($_GET['action']=="nonews")
{
include ("vars.php");
mysql_connect ("localhost",$user,$pw) or die ("Es besteht keine DB Verbindung :o(");
$dbanfrage = "DELETE FROM subscriber WHERE subscriber_email='$_GET[mail]'";
$result = mysql_db_query ($db, $dbanfrage) or die (mysql_error());
if ($result==true)
{
    echo "<strong>Wir haben Sie bzw. Ihre e-Mail ($_GET[mail]) aus dem Funkel-Newsletter ausgetragen!</strong>";
} else echo "<strong>Diese e-Mail ist nicht bei uns eingetragen!</strong>";
}

Wo ist mein Denkfehler?
Danke für die Tipps!
 
Erstmal: http://de3.php.net/manual/de/function.mysql-db-query.php
Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

Die Funktion liefert TRUE zurück, wenn das Query an die DB gesendet und ausgeführt werden konnte.
Das sagt nichts darüber aus, ob ein Datensatz gelöscht wurde, oder nicht.

Take a look: http://de3.php.net/manual/de/function.mysql-affected-rows.php
 
Hi,
ich habe mir ein Anmeldeskript geschrieben, wo der User eine E-Mail zu seiner Adresse geschickt bekommt und wenn er den darin enthaltenen Link anklickt, ist sein Account freigeschaltet. Nur hatten irgendwelche Spaßvögel nach ein paar Tagen raus, dass sie gar nicht die richtige E-Mail-Adresse angeben brauchten, da sie sich den Freischaltlink denken konnten. Also habe ich ein Passwort eingefügt.
Ich würde an deiner Stelle auch einen Schutz einbauen, sonst könnte ein böser User die Newsletter anderter abbestellen, wenn er die Adressen kennt.

schiese
 
Daran habe ich gedacht. Habe nicht den kompletten Link bzw. den kompletten Quellcode gepostet. Es wird noch ein Key mit übergeben, welcher in der DB gespeichert ist und geprüft wird.
Dennoch Danke für den Hinweis :-)
 
Zurück