Beste mensen,

Ik ben bezig met het ontwikkelen van een website (Dakofferte.nl), Nu stuit ik bij het ontwikkelen van een PHP script voor het aanvragen van een offerte via de mail op een error waar ik geen raad mee weet. Wie kan mij helpen?

<?php
error_reporting(E_ALL ^ E_NOTICE);


if($_POST['verzend']){
$onderwerp = $_POST['onderwerp'];
$naam = $_POST['naam'];
$adress = $_POST['adress'];
$plaats = $_POST['plaats'];
$telefoonnummer = $_POST['telefoonnummer'];
$email = $_POST['email'];
$typepan = $_POST['typepan'];
$opmerkingen = $_POST['opmerkingen'];


if($onderwerp){
if($naam){

if($adress){
if($plaats){
if($telefoonnummer){
if((strlen($email) >= 7) && (strstr($email, "@")) && (strstr($email, "."))){

//variabele om in te voegen.
$date = date("F d Y H:i:s");
$eigenaarsemail = "[email protected]";
//email naar gebruiker
$webmaster = "[email protected]";
$headers = "Van: $webmaster";
$subject = "Aanvraag offerteformulier: $naam";
$message = "$naam, heet het volgende aangevraagd \n\n";
$message .= "Onderwerp: $onderwerp.\n";
$message .= "Tijdstip: $date.\n";
$message .= "Adres: $adress.\n";
$message .= "Plaats: $plaats.\n";
$message .= "Telefoonnummer: $telefoonnummer.\n";
$message .= "Email:$email. \n";
$message .= "Opmerkingen:$opmerkingen. \n";



if (mail($eigenaarsemail, $subject, $message, $headers)){
echo "Uw aanvraag is ontvangen we nemen zo spoedig mogelijk contact met u op";
}else
echo "Er is een fout opgetreden we verzoeken u om dit formulier nogmaals te versturen. $form.";


}else
echo "Vul een geldig emailadress in om dit formulier te verzenden. $form";
}else
echo "U moet een telefoonnummer invullen. $form";
}else
echo "U moet een plaats invullen. $from";
}else
echo "U moet een adress invullen. $form";
}else
echo "U moet een naam invullen. $form";
}else
echo "U moet een onderwerp kiezen. $form";
}
$form ="<form action='' method='post'>
<table width='300' border='0'>
<tr>
<td><label>Onderwerp</label></td>
<td><select name='onderwerp'>
<option name='dakinspectie'>Dakinspectie</option>
<option name='vernieuwen_dakpannen'>Vernieuwen Dakpannen</option>
<option name='vernieuwen dakpannen + isolatie'>Vernieuwen Dakpannen + Isolatie</option>
<option name=' vernieuwen dakpannen+isolatie+zinkwerken'> Vernieuwen Dakpannen+Isolatie+Zinkwerken</option>
<option name='schoorsteen inspecteren'>Schoorsteen Inspecteren</option>
<option name='zonnepanelen '>Zonnepanelen </option>
<option name='dakkapel '>Dakkapel </option>
<option name='velux dakraam plaatsen'>Velux Dakraam Plaatsen</option>
<option name='overige werkzaamheden'>Overige Werkzaamheden</option>
</select></td>
</tr>
<tr>
<td><label>Naam</label></td>
<td><input name='naam' type='text' /></td>
</tr>
<tr>
<td><label>Adres</label></td>
<td><input name='adress' type='text' /></td>
</tr>
<tr>
<td><label>Plaats</label></td>
<td><input name='plaats' type='text' /></td>
</tr>
<tr>
<td><label>Telefoonnummer</label></td>
<td><input name='telefoonnummer' type='text' /></td>
</tr>
<tr>
<td><label>Email</label></td>
<td><input name='email' type='text' /></td>
</tr>
<tr>
<td>Type</td>
<td><input name='typepan' type='checkbox' value='dakpannen' checked='yes'/>
Dakpannen<br />
<input name='typepan' type='checkbox' value='platte daken' />
Platte Daken</td>
</tr>
<tr>
<td>Opmerkingen:</td>
<td>
<textarea name='opmerkingen' cols=50 rows=10></textarea>

</td>
</tr>
<tr>
<td></td>
<td><input name='verzend' type='submit' value='Verzenden' /></td>
</tr>

</table>
</form>";

echo $form;

?>


Ik hoop op een goede oplossing!

Met vriendelijke groet,

Hans
Als je het formulier compleet invult, geeft hij de volgende melding op de website:

"Er is een fout opgetreden we verzoeken u om dit formulier nogmaals te versturen."
dit gaat niet goed.
<?php
$headers = "Van: $webmaster";
?>

Van moet From zijn. verder adviseer ik je om de variabelen buiten de quotes te houden:
<?php
$headers = 'From: '.$webmaster;
?>
<option> heeft geen name maar een value.
Ik zou ook adviseren om de foutmeldingen gezamelijk af te handelen, zodat een potentiele klant in één keer ziet wat hij is vergeten, in plaats van veld voor veld te moeten zien wat er niet klopt.

<?php
$errors = array();
if(!$onderwerp)
{
$errors[] = 'Foutmelding ...';
}
if(!$naam)
{
$errors[] = 'Foutmelding';
}
/*
* Etcetera etcetera ...
*/

// als het aantal fouten > 0
if(sizeof($errors) > 0)
{
// printen van je foutmeldingen
foreach($errors as $error)
{
// print je foutmeldingen.
}

}
else
{
// versturen van je mail
}

?>

Daarnaast is het voor een offerte formulier interessant van te voren aan te geven, welke velden verplicht zijn, met bijvoorbeeld een sterretje (*)

Reageren