Fehler in der Abfrage beim Anlegen des Users

  • Fehler in der Abfrage beim Anlegen des Users

    Hallo,

    ich habe mir eine Datenbank angelegt, funktioniert ohne Probleme.
    Angelegt heisst für mich, komplett selber programmiert, ohne programme, ausser dem windowseditor.

    habe nun eine datei mit insert_user (für den adminbereich z.B.)
    ein Formular zum eintragen der Daten-->

    Quellcode

    1. <?php include 'db.php'; ?>
    2. <html>
    3. <head>
    4. </head>
    5. <body>
    6. <form method="post">
    7. <label>Benutzername</label><input id="Benutzername" type="text" name="username"><br>
    8. <label>Password</label><input id="Password" type="password" name="password"><br>
    9. <label>Mail</label><input id="Mail" type="text" name="mail" ><br>
    10. <input type="submit" value="Benutzer Anlegen"><input type="reset" value="löschen">
    11. </form>
    12. </body>
    13. </html>
    Alles anzeigen


    Das include db.php , da steht halt alles drin vom user.
    Das sind ersteinmal username password und email

    nun habe ich eine abfragge-->

    Quellcode

    1. <?php
    2. if(isset($_POST['username'])) {
    3. $username = trim(addslashes( stripslashes($_POST['username'])));
    4. if(!preg_match('/^[a-z][\da-z\-\_]{1,18}[^\-\_]$/i', $username))
    5. die("Benutzername ung&uuml;ltig.");
    6. if(!isset($_POST['password']))
    7. die("Kein Kennwort angegeben.");
    8. $password = trim(addslashes( stripslashes($_POST['password'])));
    9. if(strlen($password) < 6)
    10. die("Kennwort zu kurz.");
    11. if(!isset($_POST['mail']))
    12. die("Keine E-Mail-Adresse angegeben.");
    13. $mail = trim(addslashes( stripslashes($_POST['mail'])));
    14. if(!preg_match('/^([\da-z\-\_]\.)+[\da-z]@([\6da-z\-\_]\.)+[a-z]{2,6}$/i', $mail))
    15. die("Ung&uuml;ltige E-Mail-Adresse angegeben.");
    16. $strQuery = "INSERT INTO users VALUES (NULL, '$username', '$password', '$mail')";
    17. mysql_query($strQuery);
    18. }
    19. ?>
    Alles anzeigen



    Das Problem beginnt hier-->

    Quellcode

    1. $mail = trim(addslashes( stripslashes($_POST['mail'])));
    2. if(!preg_match('/^([\da-z\-\_]\.)+[\da-z]@([\6da-z\-\_]\.)+[a-z]{2,6}$/i', $mail))
    3. die("Ung&uuml;ltige E-Mail-Adresse angegeben.");



    Mir wird ausgegeben-->
    " Ungültige Email-Adresse. "


    Kann mir einer sagen wo der Fehler liegt?
  • Könntest du mir das vielleicht genauer erklären?
    Escapen hat doch was mit Backslash also \ zu tun.

    Wie sollte der code dann lauten bzw wo muss ich was daran verändern?-->

    Quellcode

    1. $mail = trim(addslashes( stripslashes($_POST['mail'])));
    2. if(!preg_match('/^([\da-z\-\_]\.)+[\da-z]@([\6da-z\-\_]\.)+[a-z]{2,6}$/i', $mail))
    3. die("Ung&uuml;ltige E-Mail-Adresse angegeben.");