Ik heb van alles geprobeerd, maar ik kom er geen wijs uit, zouden jullie misschien eens kunnen kijken wat er precies mis gaat. lijn 11 is:

$email = $_POST['email'];

Foutmelding:
in /home/vhosting/t/vhost0029000/domains/domein.nl/htdocs/www/talent/vacature.php on line 11


<?php
$naar = "[email protected]";
$email = $_POST['email'];
if(isset($_POST['verzend']))
{
if($_POST['naam'] == '')
{
echo "U heeft geen naam ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['email'] == '')
{
echo "U heeft geen e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['bericht'] == '')
{
echo "U heeft geen bericht ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['onderwerp'] == '')
{
echo "U heeft geen onderwerp ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"]))
{
echo "U heeft geen geldig e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
$bericht = "
<html>
<head>
<title>Contact</title>
</head>
<body>
Beste ".$_POST['naam']."<br>U heeft vandaag het volgende bericht Gestuurd.
<br>
<br>
<hr width='100%'>
<table border='0' width='100%'>
<tr>
<td width='20%'>Het onderwerp:</td>
<td>".$_POST['onderwerp']."</td>
</tr>
<tr>
<td width='20%'>Het Bericht:</td>
<td>".$_POST['bericht']."</td>
</tr>
</table>
<hr width='100%'>
</body>
</html>
";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
if(mail($naar, $_POST['onderwerp'],$bericht,$headers))
{
echo 'Uw Bericht is naar de naar de webmaster verstuurd!<br>';
}
else
{
echo 'Uw bericht is helaas niet verstuurd.';
}
$ond = "Uw bericht";
if (mail($email,$ond,$bericht,$headers))
{
echo 'We hebben een e-mail naar u terug gestuurd!';
}
else // Anders
{
echo 'Er is helaas niks naar u gestuurd.';
}
}
}
}
else
{
?>

<center>
</center>
</p>
<table border='0' width='100%'>
<form method='post'>
<tr>
<td width='33%'>Naam:</td>
<td width="67%"><input type='text' name='naam' /></td>
</tr>
<tr>
<td width='33%'>E-mail adress:</td>
<td><input type='text' name='email' /></td>
</tr>
<tr>
<td width='33%'>Het onderwerp:</td>
<td><input type='text' name='onderwerp' /></td>
</tr>
<tr>
<td width='33%'>Vertel ons jou talent en Motivatie:</td>
<td><textarea name='bericht' cols="40" rows="5"></textarea></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Verzend' name='verzend' /></td>
</tr>
</form>
</table>
<?php
}
?>
- Controleer of een formulier is gepost doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
- $_POST variabelen alleen gebruiken binnen die if.
- Zie ook [php]trim[/php].
- Javascript back is onzin, werkt vaak niet goed.
- Inline style is vies. Gebruik gewoon een klasse.
- Je wilt stap voor stap controleren of er niet iets leegs is ingevuld? (Dus als iemand een leeg formulier post dat er dan alleen de melding komt dat de naam niet is ingevuld?)
- Eregi is verouderd.
- E-mail adressen is eigenlijk niet mogelijk. Check gewoon of er een @ is en of er daarna een punt met data erachter is.
- Gebruik geen tabellen voor lay-out, daar zijn ze niet voor bedoeld.
- [php]htmlentities[/php] kan je ook eens naar kijken.
- [google]mail injections[/google] mogelijk.
Je foutmelding is niet compleet.
Gebruik aub code-tags.

Reageren