Meine PHP hat folgenden Inhalt für die E-mail abfrage beim Vergessen des Passwortes.
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:
Kann mir jemand sagen wie ich da Abhilfe schaffen kann? Bin grad etwas am Rätseln
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ü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!'); } ?>
Fehler:
Code:
Warning: preg_match() [function.preg-match]: Unknown modifier '-' in /home/www/web9/html/xxx/forgotpw.php on line 7
Kommentar