Christian: SQL löschen. Falls Eintrag nicht vorhanden, Fehlermeldung.

Hallo.

Ich habe mein Problem mit dem UNIQUE (oder wie das geschrieben wird *g*) gelößt. Nun wollte ich in mein E-Mail Listenscript, eine Erweiterung einbauen, die es ermöglicht, den Leuten die sich eingetragen haben, sich auch wieder "auszutragen".

Ich habe folgendes dazugeschrieben:
»  $query = "DELETE FROM liste WHERE mail = '".$_POST['mail2']."' LIMIT 1;";
»  if(mysql_query($query)) {
»   print '<font color="FF0000"><b>Eintrag gel&ouml;scht!</b></font>';
»  }

Löschen funktioniert, aber wenn die E-Mail nicht besteht, kommt die »Eintrag gelöscht!« dennoch.
Wie kann ich eine Überprüfung so machen?

Christian

  1. hi,

    Löschen funktioniert, aber wenn die E-Mail nicht besteht, kommt die »Eintrag gelöscht!« dennoch.
    Wie kann ich eine Überprüfung so machen?

    Ein DELETE-Statement gibt die Anzahl gelöschter Datensätze zurück, und du kannst sie in PHP mit mysql_affected_rows() in Erfahrung bringen.

    Allerdings ist es vielleicht nicht allzu clever, nur die Emailadresse als Parameter zum Löschen zu verwenden - wenn ich weiß, dass du angemeldet bist, und ich auch deine Emailadresse kenne, kann ich dich aus der Liste wieder herauslöschen lassen, in dem ich einfach den Parameter manipuliere.
    Überlege dir also eine Möglichkeit, dies abzusichern bzw. zu verhindern.

    print '<font color="FF0000"><b>Eintrag gel&ouml;scht!</b></font>';

    Ih-gitt.
    Nutze bitte CSS für sämtliche Formatierungen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ein DELETE-Statement gibt die Anzahl gelöschter Datensätze zurück, und du kannst sie in PHP mit mysql_affected_rows() in Erfahrung bringen.

      Okay, ich werde dort mal schauen.

      Allerdings ist es vielleicht nicht allzu clever, nur die Emailadresse als Parameter zum Löschen zu verwenden - wenn ich weiß, dass du angemeldet bist, und ich auch deine Emailadresse kenne, kann ich dich aus der Liste wieder herauslöschen lassen, in dem ich einfach den Parameter manipuliere.
      Überlege dir also eine Möglichkeit, dies abzusichern bzw. zu verhindern.

      Hmm.. Jo. Ich glaube ich mach beim Eintragen noch ein "Passwort" welches dann auch per E-Mail zugesand wird.
      Danke

      Ih-gitt.
      Nutze bitte CSS für sämtliche Formatierungen.

      Für gewöhnlich benutze ich CSS. Aber für so kleinigkeiten benutze ich es nicht. :D

      Christian

      1. yo,

        und wenn du schon dabei bist, entferne doch auch das LIMIT 1 aus der DML Anweisung. wenn die spalte schon UNIQUE ist, dann gibt es auch nur höchstens einen eintrag. und nicht vergessen auch das NOT NULL zu setzen.

        Ilja