Contoleren of naam is ingevuld

Status
Niet open voor verdere reacties.

Broertjuhhh

Gebruiker
Lid geworden
6 feb 2007
Berichten
271
Hallo mensen,

Ik heb onderstaand scriptje en dat werkt maar wat er aan ontbreekt is de controlle of er een naam is ingevuld.
Het e-mail adres word wel gecontroleert.
Hoe doe ik dat, ik kom er niet uit. :confused:



PHP:
<?php  

/* instellingen */  

$jouw_adres = "jouw@email.nl";  
$jouw_naam = "Jouw Naam";  
$onderwerp = "reactie van je mailform";  

/* einde instellingen */  

if($_REQUEST['verzend'])  
{  
    $naam = $_REQUEST['naam'];  
    $email = $_REQUEST['email'];  
    $opmerkingen = $_REQUEST['opmerkingen'];  

    $browser = $HTTP_USER_AGENT;  
    $ip = $REMOTE_ADDR;  

    /* controleer emailadres */  
    $error = false;  
    if ((!ereg(".+\@.+\..+", $email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $email))){  
    $error .= "ongeldig emailadres<br>";}  

    /* als er problemen zijn met het emailadres */  
    if($error)  
    {  
        echo $error;  
    }  
    else   
    {  
        /* als er geen fouten zijn */  
        /* maak de boodschap */  
        $boodschap = "reactie met je mailform:<br />";  
        $boodschap .= "naam: " . $naam . "<br />";  
        $boodschap .= "email: " . $email . "<br />";  
        $boodschap .= "opmerkingen: " . $opmerkingen . "<br />";  
        $boodschap .= "-----------------------------<br />";  
        $boodschap .= "browser: " . $browser . "<br />";  
        $boodschap .= "IP adres: " . $ip . "<br />";  

        /* maak de headers */ 
        $headers  = 'MIME-Version: 1.0' . "\r\n";  
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  
        $headers .= 'From: ' . $naam . ' <' . $email . '>' . "\r\n";  
        $headers .= 'Reply-To: ' . $naam . ' <' . $email . '>' . "\r\n";  
         
        /* verstuur de mail met de PHP functie 'mail()' */  
        mail($jouw_naam . "<" . $jouw_adres . ">", $onderwerp, '  
<html>  
<head>  
<style>  

body  
{  
font-family: "Courier New";  
}  

</style>  
</head>  
<body>  

' . $boodschap . ' 

</body>  
</html>  
', $headers);   



        echo "dankjewel voor je reactie!";  
    }  
}  
else {  
    /* als er niks naar het script gepost wordt laat dan het formulier zijn */  
    ?>  
    <html>  
    <head><title></title></head>  
    <body>  
    <form method="POST" action="<?php echo $PHP_SELF; ?>">  
    <p>naam: <input type="text" name="naam"></p>  
    <p>email: <input type="text" name="email"></p>  
    <p><textarea name="opmerkingen" rows="10" wrap="hard"></textarea></p>  
    <p><input type="submit" value="verzend" name="verzend">  
    <input type="reset" value="reset"></p>  
    </form>  
    </body>  
    </html>  
<? /* vergeet het else statement niet af te sluiten */ } ?>
 
PHP:
/* controleer emailadres */   
    $error = false;   
    if ((!ereg(".+\@.+\..+", $email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $email))){   
    $error .= "ongeldig emailadres<br>";}   

    /* als er problemen zijn met het emailadres */   
    if($error)   
    {   
        echo $error;   
    }
Daar kun je gewoon een extra IF-statement aan toevoegen welke op een lege string controleert.

PHP:
/* controleer emailadres */   
    $error = false;   
    if ((!ereg(".+\@.+\..+", $email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $email))){   
    $error .= "ongeldig emailadres<br>";}
// Controleer of naam is ingevuld.
    if($naam == "") {
      $error .= 'U moet een naam invullen. <br />';
    }
    /* als er problemen zijn */   
    if($error)   
    {   
        echo $error;   
    }
 
Dat werkt, bedankt !

Nu nog wat.

Hoe kan ik controleren dat de lengte van $naam minimaal 3 karakters is ?

Dan heb ik twee vliegen in een klap.
 
De functie strlen() gebruiken. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan