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=
Geen geldige postcode ingegeven

ok bijna alles weg haha
postcode input is 2222 en hij geeft een fout aan

/^\d{4}\s?\w{2}$/

kan het zijn dat dat 4 cijfers & 2 letters zijn en in belgie hebben we enkel 4 cijfers

(mag van mij 4+2 zijn maar ook dat 4 mogelijk is hehe)
België heeft inderdaad een ander postcodesysteem, dus moet je die even aanpassen.
/^d{4}$/

doet het niet :s

[size=xsmall]Toevoeging op 21/03/2020 21:45:13:[/size]

misschien iemand inhuren om men html + php werkende te krijgen en op te schonen zodat de codes geen errors enzo meer geven haha

Error: The character encoding was not declared. Proceeding using windows-1252.

in ieder geval enkel die 4 cijfers krijg ik nu niet aan de praat :s en google geeft me geen raad lol

[size=xsmall]Toevoeging op 21/03/2020 22:36:02:[/size]

Heb de verificatie voor de postcode weggelaten zo werkt het script ook haha
Philip VanGorp op 21/03/2020 21:12:12

/^d{4}$/

doet het niet :s


Moet volgens mij goed zijn.
Probeer deze eens:
/^(?:(?:[1-9])(?:\d{3}))$/
Zalig het werkt ????????????
Zou ik er nog iets van captcha op zetten?
Ik zou het wel aanraden. Op een gegeven moment hebben de spammers je ontdekt.
Ik heb zelf ReCaptcha V2 draaien, maar V3 is ook al uit en werkt onzichtbaar.

Maar het is geen 100% veiligheid, ik krijg geregeld mensen die dit omzeilen.
Dat moet volgens wel handwerk zijn in plaats van botjes.

Hier een mooie uitleg:
https://stevencotterill.com/articles/adding-google-recaptcha-v3-to-a-php-form
Waarom beter V2 als V3 uitgekomen is?
Ik heb geen ervaring met V3 op dit moment (staat nog op mijn ToDo) maar lijkt niet lastiger te zijn dan V2 inbouwen. Dus check die URL eens?
, maar V3 is ook al uit en werkt onzichtbaar.

Maar het is geen 100% veiligheid, ik krijg geregeld mensen die dit omzeilen.
Dat moet volgens wel handwerk zijn in plaats van botjes.





Daarom?

Reageren