Formulier negeert $aVerplicht

Status
Niet open voor verdere reacties.

Zaankantertje75

Gebruiker
Lid geworden
22 jul 2010
Berichten
97
Beste mensen,

Ik ben nieuw met PHP en heb met behulp van internet een formulier in elkaar geknutseld (mijn eerste)

Het formulier doet het prima, hij verstuurd de naam, bedrijf, mail, ip en datum naar mijn email.

Het enige wat hij niet doet is de velden controleren. Ik heb van de week 14(!) lege emails gehad omdat de velden niet ingevuld waren..
Na wat zoeken op internet en fora afgelezen te hebben ben ik de wanhoop nabij en wil ik graag jullie om een hint vragen.

Dit is mijn code:

PHP:
<?php  
if (!isset($_POST['naam']) || !isset($_POST['email']) || !isset($_POST['bericht'])) {  

	//verplichte velden. 
	$aVerplicht = array('naam', 'email', 'bericht');
	
    echo 'U heeft niet alle velden ingevuld!';  
    exit;  
}  


  
$naam = htmlspecialchars($_POST['naam']);
$company = htmlspecialchars($_POST['company']); 
$email = htmlspecialchars($_POST['email']);  
$bericht = htmlspecialchars($_POST['bericht']);  
  

  
$tijd = time();  
$datum = strftime('%d-%m-%y %H:%M', $tijd);  
$ip = getenv('REMOTE_ADDR');  
$message = $naam.' van het bedrijf '.$company.', met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:  
____________________________________  
'.$bericht.'  
------------------------------------';  

mail('naam@povider.nl', 'Bericht van website', $message, 'From: '.$email);

echo 'Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.';
?>

Alvast bedankt voor je tijd!

Bram
 
Volgens mij geeft isset altijd positief terug in dit geval? Kun je niet beter controlleren op een lege string?
 
Wat wampier zegt klopt. De variabele bestaat wel, het is alleen leeg. Er is een verschil tussen een lege string en een niet bestaande variabele. Wat je zou kunnen doen:
Code:
$aVerplicht = array('naam', 'email', 'bericht');
foreach($aVerplicht as $i)
{
    if ($_POST[$i]=="")
    {
        echo "U heeft niet alle velden ingevuld!";
        exit;
    }
}
 
dus:
PHP:
<?php  
if (empty($_POST['naam']) || empty($_POST['email']) ||empty($_POST['bericht'])) {  
 
    //verplichte velden. 
    $aVerplicht = array('naam', 'email', 'bericht');
    
    echo 'U heeft niet alle velden ingevuld!';  
    exit;  
} 

 
  
$naam = htmlspecialchars($_POST['naam']);
$company = htmlspecialchars($_POST['company']); 
$email = htmlspecialchars($_POST['email']);  
$bericht = htmlspecialchars($_POST['bericht']);  
  
 
  
$tijd = time();  
$datum = strftime('%d-%m-%y %H:%M', $tijd);  
$ip = getenv('REMOTE_ADDR');  
$message = $naam.' van het bedrijf '.$company.', met het e-mailadres '.$email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht:  
____________________________________  
'.$bericht.'  
------------------------------------';  
 
mail('naam@povider.nl', 'Bericht van website', $message, 'From: '.$email);
 
echo 'Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.';
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan