Vergessenes PW

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

  • Vergessenes PW

    Meine PHP hat folgenden Inhalt für die E-mail abfrage beim Vergessen des Passwortes.

    Code:
    <?php
    
    if(!isset($_POST['email'])){
    echo file_get_contents('forgotpw.html');
    }else{
    //prüft die email
    if(!preg_match("/^[^@\s<&>]+@([\w]+\.)+[a-z]{2,}$/i-", $_POST["email"])){
    message('admin',"Die eingegebene email ist nicht korrekt! Klicken Sie <a href=\"javascript:history.back()\">hier</a>.");
    exit();
    }
    $checkmaildb = "SELECT email FROM user WHERE email = '".mysql_real_escape_string($_POST['email'])."'";
    $checkmaildb = mysql_query($checkmaildb);
    if(mysql_num_rows($checkmaildb) == 0){
    message('admin', "Diese Email ist nicht in unserer Datenbank. <br /> <a href=\"javascript:history.back()\">Zur&uuml;ck</a>");
    exit();
    }
    
    $pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
    				for($i = 0; $i < 10; $i++){
    					 $newpw .=$pattern[mt_rand(0,strlen($pattern))];
    				}
    $query = "UPDATE user SET password = '".md5($newpw)."' WHERE email = '".mysql_real_escape_string($_POST['email'])."';";
    $query = mysql_query($query);
    $message = "Hallo,
    
    ihr neues Passwort bei ".$url." lautet: ".$newpw."
    
    
    ";
    $header = 'From: info@xxx' . "\r\n" .
        'Reply-To: info@xxx' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
    	
    mail($_POST['email'], "New password!", $message, $header);
    message('user', 'Ein neues Passwort wurde zu Ihrer Emailadresse gesendet!');
    }
    
    ?>
    Nun ist es so dass wenn ich eine Domain wie: ich@admin-php.de angebe, er das > - < minus Zeichen nicht erkennt und diese Email als unbekannt ausliesst.

    Fehler:
    Code:
    Warning: preg_match() [function.preg-match]: Unknown modifier '-' in /home/www/web9/html/xxx/forgotpw.php on line 7
    Kann mir jemand sagen wie ich da Abhilfe schaffen kann? Bin grad etwas am Rätseln

  • #2
    Hallo,

    1. Bitte an die Regeln halten
    1.1 PHP Tags
    1.2 Keine Scrollbalken

    2. Er gibt es nicht als unbekannt aus sondern es wird dir ein Fehler in deinem Syntax gemeldet (frei gesagt) ..

    Hast du dir deine Zeile 7 mal angeguckt?
    Wo da z.b. ein "-" ist ?

    mfg

    Kommentar


    • #3
      Warning: preg_match() [function.preg-match]: Unknown modifier '-'
      Also ganz ehrlich, ich kenne auch keinen Modifier "-". Woher hast du das?

      Kommentar


      • #4
        Ja, das habe ich: {2,}$/i-"
        Ist am Ende wie man sieht.

        Ursprünglich ist es ja nicht da.
        Nur dann kann ich keine Mails mit - definieren.
        Da muss sollte Abhilfe her.

        Ursprung wäre: "/^[^@\s<&>]+@([\w]+\.)+[a-z]{2,}$/i"

        Kommentar


        • #5
          Da muss sollte Abhilfe her.
          Nee, da müssen Grundlagen her!

          Guck dir mal an, wie ein RegExp-Pattern aufgebaut ist. Da kannst du nicht einfach nen Zeichen ans Ende hängen. Der Platz ist für die Modifier reserviert.

          Füg deinen Bindestrich (escaped!) in die Zeichengruppe der \w ein, dann passts.

          Kommentar


          • #6
            Stimmt, blöder Fehler.

            Danke

            Kommentar

            Lädt...
            X