ik ben bezig met de redesign van de website:
De contactform werkt niet zoals zou moeten:
wanneer ik alle velden invul, en op "send" klik, springt het naar de ingevoegde php pagina waar ik de captcha terug moet invullen en opnieuw op "send" moet klikken. Daar het meteen vanaf de de "index" pagina de mail zou moeten versturen en "thank you..." bericht in de contact sectie zou moeten weergeven.
Zouden jullie eens kunnen testen en bekijken wat er fout loopt? Ben er zelf niet uitgeraakt, omdat ik nog niet echt vertrouwd ben met PHP.
Alvast bedankt voor jullie tijd en advies.
Mvg,
Max
PS: indien jullie een goede tutorial weten voor een contact form met captcha, laat gerust weten.
invoeging PHP contactform in Index >>>
<div class="contactFormContainer">
<form name="responsiveContactForm.php" method='post'>
<p><strong>Name:</strong> <span class='required'>*</span></p>
<input type='text' name='name' value=''>
<p><strong>Email address:</strong> <span class='required'>*</span></p>
<input type='email' name='email' value=''>
<p><strong>Message:</strong> <span class='required'>*</span></p>
<textarea name='message'></textarea>
<p><strong>How much is 4+4?</strong> <span class='required'>*</span></p>
<input type='text' name='captcha' value=''><br/>
<button>Send</button>
</form>
</div><!--contactFormContainer-->
PHP contactform >>>
<?php
session_start();
$php_self = $_SERVER['PHP_SELF'];
// on submit
if( isset($_POST[name]) && isset($_POST[email]) && isset($_POST[message]) && isset($_POST[captcha]) ){
$name = $_POST[name];
$email = $_POST[email];
$message = $_POST[message];
$captcha = $_POST[captcha];
$error = 0;
// name
if( $name == "" ){ $error ++; $error_name = "class='error'"; }
// email
if( $email == "" ){ $error ++; $error_email = "class='error'"; }
// message
if( $message == "" ){ $error ++; $error_message = "class='error'"; }
// captcha
if( $captcha == "" || $captcha != $_SESSION[captcha]){ $error ++; $error_captcha = "class='error'"; }
// no error, send email
if( $error == 0){
// your email address
$address = "[email protected]";
// email subject
$subject = "New message";
// email content
$content = "<strong>Name:</strong><br/>$name<br/><strong>Email address:</strong><br/><strong>Message:</strong><br/>$email<br/>$message";
// html email
$email_content = "<!doctype html><head><meta charset='utf-8'><title>".$subject."</title>";
$email_content .= "</head><body>";
$email_content .= $content;
$email_content .= "</body></html>";
// headers for html email
$headers = 'MIME-Version: 1.0' . "/r/n";
$headers .= 'Content-type: text/html; charset=utf-8' . "/r/n";
$headers .= "From: 1stWebMagazine.com <[email protected]>" . "/r/n";
// send email
mail($address, $subject, $email_content, $headers);
// reset variables
$name = ""; $email = ""; $message = "";
$mail_sent = 1;
}
}
// captcha
$num = rand(1, 20);
$num2 = rand(1, 9);
$verif = $num . "+" . $num2;
$_SESSION[captcha] = $num + $num2;
if( $mail_sent == 1 ){
echo "<h1>Thank you for your message! We'll be in touch soon.</h1>";
} else {
echo "
<form action='".$php_self."' method='post'>
<p><strong>Name:</strong> <span class='required'>*</span></p>
<input type='text' ".$error_name." name='name' value='".$name."'>
<p><strong>Email address:</strong> <span class='required'>*</span></p>
<input type='email' ".$error_email." name='email' value='".$email."'>
<p><strong>Message:</strong> <span class='required'>*</span></p>
<textarea ".$error_message." name='message'>".$message."</textarea>
<p><strong>How much is ".$verif."?</strong> <span class='required'>*</span></p>
<input type='text' ".$error_captcha." name='captcha' value=''><br/>
<button>Send</button>
</form>";
}
?>