Ik heb een contactformulier wat na veel zoekwerk nu eindelijk naar mijn mail verstuurd wordt. Echter krijg ik geen melding dat deze verstuurd is. Ook als ik een veld niet invul krijg ik daar geen melding van, het formulier wordt ook niet naar de mail gestuurd.
Ik ben nieuw met php en weet ook niet zo goed waar ik moet zoeken. De codes heb ik van een uitleg op internet gekopieerd, dus ik heb geen idee waarom het bij mij niet werkt.
Het formulier: (index3.html)
<form action="" method="post" id="myform">
<div>
<label for="name">Name:</label><br>
<input type="text" id="name" name="name" />
</div>
<div>
<label for="surname">Surname:</label><br>
<input type="text" id="surname" name="surname" />
</div>
<div>
<label for="companyname">Company Name:</label><br>
<input type="text" id="companyname" name="companyname" />
</div>
<div>
<label for="email">E-mail:</label><br>
<input type="email" id="email" name="email" />
</div>
<div>
<label for="bericht">Message:</label><br>
<textarea id="bericht" name="bericht"></textarea>
</div>
<div class="button">
<button type="submit" name="submit">Send your message</button>
</div>
</form>
PHP: (formverzenden.php)
<?php
if(isset($_POST['submit'])){
$naar = "[email protected]";
$onderwerp = "Contactformulier";
if(!empty($_POST['name'])){
$name = $_POST['name'];
}else{
die("U heeft geen voornaam ingevuld");
}
if(!empty($_POST['surname'])){
$surname = $_POST['surname'];
}else{
die("U heeft geen achternaam ingevuld");
}
if(!empty($_POST['companyname'])){
$companyname = $_POST['companyname'];
}else{
die("U heeft geen bedrijfsnaam ingevuld");
}
if(!empty($_POST['email'])){
$email = $_POST['email'];
}else{
die("U heeft geen emailadres ingevuld");
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>Helaas, het email adres is niet correct!</p>';
$fout = true;
}
if(!empty($_POST['bericht'])){
$bericht = $_POST['bericht'];
}else{
die("U heeft geen bericht geschreven");
}
$sjabloon = "
Naam: {name} {surname}
Bedrijf: {companyname}
Email adres: {email}
Bericht: {bericht}
";
$message = str_replace("{name}", $name, $sjabloon);
$message = str_replace("{surname}", $surname, $sjabloon);
$message = str_replace("{companyname}", $companyname, $sjabloon);
$message = str_replace("{email}", $email, $message);
$bericht = nl2br($bericht);
$message = str_replace("{bericht}", $bericht, $message);
$headers = 'MIME-Version: 1.0\r\n';
$headers .= 'Content-type: text/html; charset=iso-8859-1\r\n';
$headers .= 'To: <' .$naar. '>\r\n';
$headers .= 'From: ' .$name. ' ' .$surname. ' <' .$email. '>\r\n';
if(mail($naar, $onderwerp, $message, $headers)){
echo "De mail is succesvol verzonden, u wordt teruggestuurd naar het formulier";
?>
<script language="javascript">setTimeout('document.location.href = "index3.html"', 2000);</script>
<?
}else{
die("De mail kon niet verzonden worden, probeer later nog eens.");
}
}else{
die('U heeft het formulier niet ingevuld');
}
?>Dit staat in de <script> tags:
$(document).ready(function(){
$("#myform").validate({
debug: false,
submitHandler: function(form) {
// do other stuff for a valid form
$.post('formverzenden.php', $("#myform").serialize(), function(data) {
$('#results').html(data);
});
}
});
});
Ook zie ik dat in de mail die ik ontvang {name} en {surname} niet worden ingevuld, terwijl dit bij {email}, {companyname} en {bericht} wel gebeurd.
Kunnen jullie me hiermee helpen?