Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfen ob E-Mail Adresse vorhanden ist

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Prüfen ob E-Mail Adresse vorhanden ist

    Hallo,

    irgendwie habe ich gerade den totalen Hänger. Meine Abfrage lautet

    PHP-Code:
    $emailadresse = array(); 

    if(isset(
    $_POST['abschicken'])){

        
    $emailadresse  $_POST['emailadresse'];

        if (
    $stmt $mysqli->prepare("SELECT emailadresse FROM users WHERE emailadresse = '$emailadresse'"))
         {
            
    $stmt->execute(); 
            
    $stmt->store_result();
            
    $stmt->num_rows;
            
    $stmt->bind_result($emailadresse);

            while (
    $stmt->fetch()) {
              
    $emailadresse[] = $emailadresse;
            }
         }
          else {
            echo 
    $mysqli -> error;
          }

        if(empty(
    $_POST['emailadresse'])){
                
            
    $errors[] = "Bitte geben Sie Ihre E-Mail Adresse an";
            
            } elseif (
    filter_var($_POST['emailadresse'], FILTER_VALIDATE_EMAIL) == false) {
                
    $errors[] = "Bitte geben Sie ein gültige E-Mail Adresse an";
            
            }elseif (
    in_array(trim($_POST['emailadresse']), $emailadresse)) {
                
    $errors[] = "Diese E-Mail Adresse ist uns nicht bekannt";
        }

        if(isset(
    $_POST['abschicken']) && empty($errors)) {

            
    // E-Mail Versand

        
    }

    Ich möchte aber eine Ausgabe erhalten, wenn die Mail Adresse NICHT in der Datenbank vorhanden ist. Wenn diese Vorhanden ist, soll in den Bereich // E-Mail Versand gesprungen werden. Könnt ihr mir auf die Sprünge helfen?

  • #2
    Hab es gelöst

    PHP-Code:
    $emailadresse = array(); 

    if(isset(
    $_POST['abschicken'])){

        
    $emailadresse  $_POST['emailadresse'];

        if (
    $stmt $mysqli->prepare("SELECT emailadresse FROM users WHERE emailadresse = '$emailadresse'"))
         {
            
    $stmt->execute(); 
            
    $stmt->store_result();
            
    $stmt->num_rows;
            
    $stmt->bind_result($emailadresse);

            while (
    $stmt->fetch()) {
              
    $emailadresse[] = $emailadresse;
            }
         }
          else {
            echo 
    $mysqli -> error;
          }

        if(empty(
    $_POST['emailadresse'])){
                
            
    $errors[] = "Bitte geben Sie Ihre eMail Adresse an";
            
            } elseif (
    filter_var($_POST['emailadresse'], FILTER_VALIDATE_EMAIL) == false) {
                
    $errors[] = "Bitte geben Sie ein gültige eMail Adresse an";
            
            } elseif (
    $stmt->num_rows() == 0) {
                
    $errors[] = "Die Mail Adresse ist nicht vorhanden";
        }

        if(isset(
    $_POST['abschicken']) && empty($errors)) {

            
    // E-Mail Versand

        
    }

    Ich prüfe mit $stmt->num_rows() == 0 ob ein Eintrag vorhanden ist, wenn nein dann gebe ich aus, dass die Mail Adresse nicht vorhande ist, ansonsten wird $errors nicht gefüllt und es geht weiter.

    Kommentar


    • #3
      Folgendes generell noch dazu: E-Mail-Adressen sind eindeutig, dh du wirst vermutlich einen UNIQUE Index drauf haben, daher brauchst du dann keine Schleife, weil nur ein Satz zurückkommen kann.

      Und:

      PHP-Code:
             while ($stmt->fetch()) {
                
      $emailadresse[] = $emailadresse;
              } 
      $stmt->fetchAll() macht das selbe.


      Und:

      PHP-Code:
      filter_var($_POST['emailadresse'], FILTER_VALIDATE_EMAIL
      Achtung: Ev. Umalutdomains werden damit nicht erkannt, wenn du diese vor Prüfung nicht "punycodest". http://php-de.github.io/jumpto/stand...alidation/#idn
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        PHP-Code:
               while ($stmt->fetch()) {
                  
        $emailadresse[] = $emailadresse;
                } 
        Den selben Bezeichner fürs Array und die Variable zu verwenden funktioniert hier nur da in der Schleife wohl auch nur ein Resultat geliefert wird !
        Vom Grundsatz ist es immer besser unterschiedliche Bezeichner zu benutzen.

        Kommentar

        Lädt...
        X