Verplichte velden formulier

Status
Niet open voor verdere reacties.

mrbaselier

Gebruiker
Lid geworden
25 okt 2006
Berichten
56
Hallo allemaal,

Ik heb een e-mail formulier op mijn site die in het principe perfect werkt. Ook wordt er al geverifieerd of het email adres ingevult is. Zo niet wordt er een melkding gegeven.

Nu wil ik echter een paar andere verplichte velden toevoegen. Ik weet alleen niet hoe dat in de huidige code moet. Ik wil de code wel graag behouden, maar met een extra check functie.

Hieronder dus mijn code incl. een stukje formulier. Hopelijk kan iemand van b.v. het veld Eigenaar, een verplicht veld maken.

Alvast bedankt!!!!!


PHP:
#########################  
#  Start Configuration  #  
#########################  

$sWebsitenaam = "Test"; //vul hier de naam van jouw website in  

$sMail = "test@test.nl"; //Het e-mailadres waarnaar de mail word gestuurd. Voor meerdere adressen, scheid de emailadressen met een comma.  

$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail  

$sOnderwerp = "Intake formulier"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat  

$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt  

$bBedanktmail = FALSE; //Moet er een bedankt mailtje gestuurd worden aan die gene die verstuurde? (e-mail invoerveld is dan dus verplicht)  

$sBedanktmail = "Bedankt voor het invullen van het Intake Formulier. U krijgt indien nodig zo spoedig mogelijk reactie."; //de tekst van het bedank mailtje  

$sBedanktfrom = "test@test.nl"; //vanaf welk adres moet dit bedankmailtje vestuurd worden?  

$sBedanktsubj = "Bedankt voor het invullen van het Intake Formulier"; //dit is het ondewerp van het bedanktmailtje  

$bBedanktTxt = TRUE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven  

$sBedanktTxt = "<br />Uw email is succesvol verzonden naar mij. U ontvangt indien nodig zo spoedig mogelijk reactie.<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />"; //bedankt text  

$sBedanktURL = "http://www.test.nl"; //bedankt url  

#########################  
#   End Configuration   #  
#########################  

if (count($_POST) > 0)  
{  
  //controleer of de $bHTML wel fatsoenlijk is ingesteld  
  if(!is_bool($bHTML))  
  {  
    print("De configuratie is onjuist. Zorg dat je bij <font color=blue><em>$bHTML</em></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!");  
	
    exit;  
  }  
  $errors = array();//definieer arrray voor de errormeldingen  
  $aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje  
  foreach($_POST as $key=>$value)  
  {  
    $_POST[$key] = trim($value); //maak alle waarden netjes   
  }  
  foreach($aKeys as $key=>$value)  
  {  
    $aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters  
  }  
    
  $aMail = explode(",",$sMail);  
  $aDomein = explode("@",$sMail[0]);   
  $sDomein = $aMail[1];   
    
  //mail detectie  
      if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; }  
  elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; }  
  elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; }  
  elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; }  
  elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; }  
  elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; }  
  else     
  {   
    $sFrom = "postmaster@".$sDomein;  
    $bBedanktmail = FALSE;  
  }  
    
  if ($bOnderwerp)  
  {  
    $sSubject = $sOnderwerp;  
  }  
  else  
  {  
        if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; }  
    elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; }  
    elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }  
    elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; }  
    else { $sSubject = $sOnderwerp; }  
  }  
    
    
    
  //controle emailadres  
  if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$sFrom))  
  {  
    $error[] = "<br />Het opgegeven e-mail adres is niet geldig.<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />";  
  }  


  //check alle verplichte velden  
  foreach($_POST AS $key => $value)  
  {  
    if(substr($key,0,1) == 1)  
    {  
      if (empty($_POST[$key]))  
      {  
        $name = substr($key,1);  
        $error[] = "<br />Het veld <em>'".$name."'</em> is verplicht en moet worden ingevuld.<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />";  
      }  
    }  
  }  
    
  //als er een error was  
  if (isset($error) && count($error) > 0)  
  {  
    //Laat alle errors zien
    print("<ul style=\"list-style: none; color: red;\">\n");  
    foreach($error as $value)  
    {  
      print("\t<li>".$value."</li>\n");  
    }  
    print("</ul>");  
  }  
  else  
  {  
    $headers  = "MIME-Version: 1.0\n";   
    $headers .= "From: ".$sWebsitenaam." <".$sFrom.">\n";  
    $headers .= "Reply-to: ".$sWebsitenaam." <noreply@".$sDomein.">\n";  
    $headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";  
      
    $sContent = "\n\n";  
    foreach($_POST as $key => $value)  
    {  
      if (substr($key,0,1) == 1) { $key = substr($key,1); }  
      $sContent .= ucfirst(strtolower($key)).": ".$value."\n\n";  
    }  
    $sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n";  
    $sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n";  
      
    $enter = "  
";  
    $sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ;  
      
    foreach ($aMail as $sMailAdress)  
    {  
      mail(trim($sMailAdress),$sSubject,$sContent,$headers);    
    }   
      
    if ($bBedanktmail)  
    {  
      $sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ;  
       mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers);  
    }   
         

                 
    if (isset($bBedanktTxt) && $bBedanktTxt == TRUE)  
    {              
      print($sBedanktTxt);  
    }  
    else  
    {  
      ob_clean();  
      header("location: $sBedanktURL");  
      print('<meta http-equiv=refresh content="0; url='.$sBedanktURL.'">');  
    }  
  }  
}  
else  
{  
  print("<form action=\"".$_SERVER['REQUEST_URI']."\" method=\"post\" />\n"); ?>  



<h1>Klacht</h1>
<br />
<br />

Vul het intakeformulier in.<br /><br />
Ik zoekt voor u de juiste therapeut. U ontvangt binnen 24 uur via de mail een reactie. 
<br />
<br />

Probeer zo compleet mogelijk te zijn. Velden met een * zijn verplichte velden.
<br />
<br />

<fieldset>
<legend><strong>Intake Formulier</strong></legend>
<br />
<br />
<legend><strong><em>a. Algemene gegevens</em></strong></legend><br /><br />


<label for="eigenaar">Naam Eigenaar:</label>
<br />
<input type="text" name="Eigenaar" id="eigenaar" size="40" />
<br /> 
<br />

<label for="adres">Straat + Huisnummer:</label>
<br />
<input type="text" name="Adres" id="adres" size="40" />
<br />
<br />

<label for="postcodeplaats">Postcode / Plaats:</label>
<br />
<input type="text" name="Postcode_en_Plaats" id="postcodeplaats" size="40" />
<br />
<br />

<label for="telefoonnummer">Telefoonnummer:</label>
<br />
<input type="text" name="Telefoonnummer" id="telefoonnummer" size="40" />
<br />
<br />

<label for="mobielnummer">Mobiel nummer:</label>
<br />
<input type="text" name="Mobielnummer" id="mobielnummer" size="40" />
<br />
<br />

<label for="email">Email adres*:</label>
<br />
<input type="text" name="email" id="email" size="40" />
<br />
<br />

<br />
<br />
<input name="formulierverzenden" type="submit" value="Intake Formulier Verzenden"/>       						 
<input name="wissen" type="reset" id="wissen" value="Wissen"/> 
<br />
</fieldset>
<br />
<br />
<? } ?>
 
Hele goede tip Peter,

Alleen toch heel beleefd de vraag of jij er s.v.p. naar wilt kijken. Jij zult ongetwijfeld beter weten hoe mijn code is opgebouwd en wat er precies staat. Jij zult ongetwijfeld wel zien waarom er gecontroleerd wordt of mijn email adres is ingevult. Ik zie niet in de code waar dit gebeurt.

Als ik zoek op google krijg ik heel veel. En zo te zien hele goede oplossingen. Maar als ik ze plak in de code, dan werkt het formulier niet meer, dus ik weet ook niet waar ik ze in het formulier moet plakken.

Hopelijk kun jij of iemand toch even zijn blik over de code laten gaan. Wellicht zien of weten jullie direct een goede oplossing die te implementeren is in de huidige code.


THANKS!!!!
 
Allemaal bedankt voor jullie hulp.

Het is opgelost.

Ik moet een 1 voor de naam plaatsen van het formulier om hem verplicht te maken.

Dus name="Eigenaar" wordt:
name="1Eigenaar"

Super simpel... maar lastig om het door de code heen te lezen.


Groetjes,

Jarno
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan