Ben bezig met een uitgebreid contactformulier.
Echter wanneer ik deze test krijg ik een witte pagina.
Ook geen foutmeldingen wanneer ik ze leeg laat.
kan iemand me misschien zeggen wat ik fout doe?


<?php
if(isset($_POST['email'])) {
 
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "email verwijdert om privacy redenen";
    $email_subject = "Recruitment Form";
 
    function died($error) {
        // your error code can go here
        echo "Er zijn nog enkele fouten gevonden. ";
        echo "De fouten worden hieronder weergegeven.<br /><br />";
        echo $error."<br /><br />";
        echo "Gelieve deze fouten op te lossen en het formulier op.<br /><br />";
3        die();
    }
 
 
    // validation expected data exists
    if(!isset($_POST['naam']) ||
        !isset($_POST['straat']) ||
        !isset($_POST['stad']) ||
        !isset($_POST['postcode']) ||        
		!isset($_POST['provincie']) ||
        !isset($_POST['geslacht']) ||
        !isset($_POST['aantal']) ||        
		!isset($_POST['email']) ||
        !isset($_POST['fblink']) ||
        !isset($_POST['instalink']) ||
        !isset($_POST['subject'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }
 
     
 
    $naam = $_POST['naam']; // required
    $straat = $_POST['straat']; // required
    $stad = $_POST['stad']; // required
    $postcode = $_POST['postcode']; // required
    $provincie = $_POST['provincie']; // required
    $geslacht = $_POST['geslacht']; // required
    $aantal = $_POST['aantal']; // required
    $email_from = $_POST['email']; // required
    $fblink = $_POST['fblink']; // not required
    $instalink = $_POST['instalink']; // not required    
	$subject = $_POST['subject']; // required

 
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'Het emailadres dat u ingegeven hebt is niet correct.<br />';
  }
 
    $string_exp = "/^[A-Za-z .'-]+$/";
 
  if(!preg_match($string_exp,$naam)) {
    $error_message .= 'Geen Naam opgegeven.<br />';
  }
 
  if(!preg_match($string_exp,$straat)) {
    $error_message .= 'Geen Straat ingegeven.<br />';
  }
   if(!preg_match($string_exp,$stad)) {
    $error_message .= 'Geen Stad opgegeven.<br />';
  }
 
  if(!preg_match($string_exp,$postcode)) {
    $error_message .= 'Geen Postcode ingegeven.<br />';
  }
   if(!preg_match($string_exp,$provincie)) {
    $error_message .= 'Geen Provincie opgegeven.<br />';
  }
 
  if(!preg_match($string_exp,$email_from)) {
    $error_message .= 'Geen Email ingegeven.<br />';
  }
 
  if(strlen($subject) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
 
  if(strlen($error_message) > 0) {
    died($error_message);
  }
 
    $email_message = "Form details below.\n\n";
 
     
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
 
     
 
    $email_message .= "Naam: ".clean_string($naam)."\n";
    $email_message .= "Straat: ".clean_string($straat)."\n";
    $email_message .= "Stad: ".clean_string($stad)."\n";
    $email_message .= "Postcode: ".clean_string($postcode)."\n";
    $email_message .= "Provincie: ".clean_string($provincie)."\n";
	$email_message .= "Geslacht: ".clean_string($geslacht)."\n";
    $email_message .= "Aantal keer vissen per maand: ".clean_string($aantal)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "fblink: ".clean_string($fblink)."\n";
    $email_message .= "instalink: ".clean_string($instalink)."\n";
    $email_message .= "Waarom wil je joinen?: ".clean_string($subject)."\n";
 
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>
 
<!-- include your own success html here -->
 
Dank u voor uw interesse.<br>
We nemen spoedig contact met u op.

 
<?php
 
}
?>


[size=xsmall]Toevoeging op 21/03/2020 11:35:22:[/size]

Alsook hoe zorg ik dat dit niet in de link verschijnt :/test/send.php?naam=&straat=&stad=&postcode=&provincie=&geslacht=man&aantal=1&email=&fblink=&instalink=&subject=
Niet verwonderlijk als je postcode en mail-adres op dezelfde manier valideert als een woonplaats, provincie stad of iets dergelijks.

Dit is een overzicht van de validatie, dus een postcode en een mail komt er nooit doorheen: klik.
aan die link kan ik niet aan uit.
zal ff googlen voor postcode validatie enzo (a)
Die link werkt hier prima. Ik zat eerst alleen te worstelen om deze hier op het forum te krijgen, maar het is gelukt. Je ziet dat cijfers niet geaccepteerd worden.

Dit moet werken voor postcodes:
/^\d{4}\s?\w{2}$/

[size=xsmall]Toevoeging op 21/03/2020 19:02:42:[/size]

Even een testscriptje, (niet om over te nemen)
<?php
$pattern= "/^\d{4}\s?\w{2}$/";
$postcode = "1234AB"; //pas eens aan naar 1234 AAB, en zie het verschil
if(preg_match($pattern,$postcode)) {
echo "Het is geldig";
} else {
echo "Het is niet geldig";
}
?>
we komen dichterbij hehe

Er zijn nog enkele fouten gevonden. De fouten worden hieronder weergegeven.

Geen Email ingegeven.


Gelieve deze fouten op te lossen en het formulier op.

ff googlen voor die email he
zo dan ? want dat geeft een error code:


Notice: Undefined variable: var in /data/sites/web/belgiancarpteambe/www/test/send.php on line 28
[email protected] is geldig Dank u voor uw interesse.
We nemen spoedig contact met u op.
sorry dat ik heel uw zaterdag in beslag neem maar waar moet ik wat toevoegen dan? en wat moet ik verwijderen?


 if(trim($var) == "") {
 // er is niks ingevuld
} else {
 // er is wel wat ingevuld
}
 
    // validation expected data exists
    if(!isset($_POST['naam']) ||
        !isset($_POST['straat']) ||
        !isset($_POST['stad']) ||
        !isset($_POST['postcode']) ||        
		!isset($_POST['provincie']) ||
        !isset($_POST['geslacht']) ||
        !isset($_POST['aantal']) ||        
		!isset($_POST['email']) ||
        !isset($_POST['fblink']) ||
        !isset($_POST['instalink']) ||
        !isset($_POST['subject'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }
 

Je moet nooit letterlijk overnemen wat ergens staat. Zorg dat je het ook begrijpt, en wat het doet. Die code kan je gewoon verwijderen, of beter zelfs: aanpassen naar jouw situatie!
ok dat word lastig want ik begrijp er niks meer van haha
Het is een voorbeeld hoe je controleert of iets ingevuld is:

<?php
// voorbeeld:
$var = ""; // vul tussen de " " iets in, en zie het verschil!

if(trim($var) == "") {
echo "Er is niks ingevuld";
} else {
echo "Er is wel wat ingevuld";
}
?>

Die kan je toepassen op in plaats van de issets()'s
als ik de code opslaan in test.php
en zonder iets tussen de "" geeft ie er is niks ingevuld
zet ik er iets tussen de "" geeft ie er is niks ingevuld

???

Reageren