mailcheck werkt niet

Status
Niet open voor verdere reacties.

kloentje2

Gebruiker
Lid geworden
19 okt 2011
Berichten
271
Hallo luitjes,

Ik heb net in de script database een leuk login systeempie gevonden, alles werk, maar de e-mail controle werkt niet.
Code:
Code:
<?php
include('config.inc.php');    
if ($_SERVER['REQUEST_METHOD'] != 'POST') {                        
    $formulier = true;
} else {                        
    $formulier = false;    
    //controles uitvoeren    
    
    if(!ereg("^[A-Za-z0-9]+$",$_POST["username"]) || strlen($_POST["username"]) < 3) {
        echo '<b style="color:#FDB839">• Uw gebruikersnaam is ongeldig.</b><br>';    
        $_POST["Gebruikersnaam"] = ""; $formulier = true;    
    } 
    
    $result = $mysqli->query("SELECT ID FROM ".$settings['db_gebruikers_table']." WHERE gebruikersnaam LIKE '".$mysqli->real_escape_string($_POST['username'])."'");
    
    if(!empty($_POST["username"]) && $result->num_rows > 0) {    
        echo '<b style="color:#FDB839">• Deze gebruikersnaam is al bezet.</b><br>';    
        $_POST["Gebruikersnaam"] = ""; $formulier = true;    
    }
    
    if(empty($_POST["pass"])) {    
        echo '<b style="color:#FDB839">• Uw password is ongeldig.</b><br>';    
        $_POST["pass"] = ""; $formulier = true;    
    }

    if(empty($_POST["email"]) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $_POST["email"])) {    
        echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';    
        $_POST["email"] = ""; $formulier = true;    
    }            

    if($formulier) {     // Wel of niet verzenden
        echo '<br>';    
        $_POST["pass"] = "";
    } else { // Verzenden
        
        $sql = "
            INSERT INTO ".$settings['db_gebruikers_table']." (
                gebruikersnaam,
                wachtwoord,
                voornaam,
                achternaam,
                emailadres,
                ipadres,
                startdatum )
            VALUES (
                '".$mysqli->real_escape_string(htmlspecialchars($_POST['username']))."',
                '".$mysqli->real_escape_string(sha1(htmlspecialchars($_POST['username']).$_POST['pass']))."',
                '".$mysqli->real_escape_string(htmlspecialchars($_POST['fname']))."',
                '".$mysqli->real_escape_string(htmlspecialchars($_POST['lname']))."',
                '".$mysqli->real_escape_string($_POST['email'])."',
                '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."',
                NOW() 
            )";
        
        if(!$result = $mysqli->query($sql))    {
            trigger_error('Fout in query: '.$mysqli->error);
            echo '<br />Er is een fout opgetreden, de gebruiker is niet toegevoegd.';
        } else {
            echo 'De gebruiker is succesvol toegevoegd.';
        }     
        
        
    }

}



if($formulier) {
    echo '    <form method="post" action="'.end(explode('/', $_SERVER["REQUEST_URI"])).'">                 
        <p><label>Gebruikersnaam:</label><input type="text" name="username" value="" /></p>
        <p><label>Wachtwoord:</label><input type="password" name="pass" value="" /></p>
        <p></p>
        <p><label>Voornaam:</label><input type="text" name="fname" value="" /></p>
        <p><label>Achternaam:</label><input type="text" name="lname" value="" /></p>
        <p><label>E-mail:</label><input type="text" name="email" value="" /></p>
            
        <p><input type="submit" value="Registreren!" /></p>                        
        </form>
    ';                
}

 
?>

Moeilijk door te spitten? Hier het relevante stukje:
Code:
    if(empty($_POST["email"]) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $_POST["email"])) {    
        echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';    
        $_POST["email"] = ""; $formulier = true;    
    }

Ik hoop dat ik snel en goed geholpen kan worden

Groetjes,

kloentje2

EDIT: Wat is precies mis gaat: Hij geeft bij ieder adres negatief resultaat.
 
In de PHP Regular Expression Tester werkt het wel als ik de backslash voor het apenstaartje en de punt weghaal. Het patroon wordt dan
Code:
/^[A-Za-z0-9._\-]+@[A-Za-z0-9._\-]+.[A-Za-z]{2,4}$/

Overigens zie ik in je code dat bij de username gebruik wordt gemaakt van, het verouderde, ereg. Dat kan je het beste vervangen door preg_match.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan