Doe een controle of er ge-POST is.
Link gekopieerd
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
// Functies
}
?>
Vooruit, gelijk wat je nodig hebt. Meerdere submit buttons?
<?php
if(isset($_POST['SubmitName'])){
// Functies
}
?>
Link gekopieerd
De controle of het formulier ingevuld is, wordt gedaan in het formulier zelf/
<?php
// vanaf nu gebruiken we associatieve arrays om de <select>s te vullen!
$onderhoud = array(
'Onderhoud' => 'Soort Onderhoud',
'APK' => 'APK',
'Kleine beurt' => 'Kleine beurt',
'Grote beurt' => 'Grote beurt',
'Kleine beurt met APK' => 'Kleine beurt met APK',
'Grote beurt met APK' => 'Grote beurt met APK',
);
$maanden = array(
'maand' => 'maand',
'januari' => 'Januari',
'februari' => 'Februari',
'maart' => 'Maart',
'april' => 'April',
'mei' => 'Mei',
'juni' => 'Juni',
'juli' => 'Juli',
'augustus' => 'Augustus',
'september' => 'September',
'oktober' => 'Oktober',
'november' => 'November',
'december' => 'December',
);
$dagen = array(
'dag' => 'dag',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '5',
'7' => '7',
'8' => '8',
'9' => '9',
'10' => '10',
'11' => '11',
'12' => '12',
'13' => '13',
'14' => '14',
'15' => '15',
'16' => '16',
'17' => '17',
'18' => '18',
'19' => '19',
'20' => '20',
'21' => '21',
'22' => '22',
'23' => '23',
'24' => '24',
'25' => '25',
'26' => '26',
'27' => '27',
'28' => '28',
'29' => '29',
'30' => '30',
'31' => '31'
);
$jaren = array(
'jaar' => 'jaar',
'2013' => '2013',
'2014' => '2014',
'2015' => '2015'
);
// deze functie maakt met behulp van een opgegeven array en de standaard geselecteerde optie de HTML aan voor alle <options> van een <select>
function getOptions($array, $selected)
{
$html = '';
foreach($array as $key => $value)
{
$sel = '';
if($selected == $key)
$sel = ' selected="selected"';
$html .= '<option value="' . $key . '"' . $sel . '>' . $value . '</option>';
}
return $html;
}
// deze functie controleert of het ingevulde goed is en geeft direct de fouten in de vorm van een array terug.
function validate(
$ddlSoortOnderhoud,
$txtNaam,
$txtTelefoon,
$txtEmail
)
{
$errors = array();
if($ddlSoortOnderhoud== '')
$errors[] = 'U moet het soort onderhoud nog opgeven.';
if($txtNaam==' ')
$errors[] = 'U heeft u naam nog niet opgegeven.';
if($txtTelefoon==' ')
$errors[] = 'U telefoonnummer ontbreekt, mochten we vragen hebben kunnen we u niet bereiken.';
if(filter_var($txtEmail, FILTER_VALIDATE_EMAIL))
$errors[] = 'U dient een GELDIG emailadres op te geven.';
return $errors;
}
// dit is een hulpfunctie om snel de $_POST variabelen in een eigen variabele te zetten
// en als de $_POST variabele niet bestaat dan geven we een beginwaarde.
function getPostValue($txtname, $default = '')
{
if(isset($_POST[$txtNaam]))
$default = $_POST[$txtNaam];
return $default;
}
// initialisatie van de variabelen.
$ddlSoortOnderhoud = getPostValue('ddlSoortOnderhoud','Onderhoud');
$ddlAfspraakdag = getPostValue('ddlAfspraakdag', 'dag');
$ddlAfspraakmaand = getPostValue('ddlAfspraakmaand', 'maand');
$txtMerk = getPostValue('txtMerk');
$txtModel = getPostValue('txtModel');
$txtBouwjaar = getPostValue('txtBouwjaar');
$txtKmstand = getPostValue('txtKmstand');
$ddlApkmaand = getPostValue('ddlApkmaand', 'maand');
$ddlApkJaar = getPostValue('ddlApkJaar', 'jaar');
$txtNaam = getPostValue('txtNaam');
$txtAdres = getPostValue('txtAdres');
$txtPostcode = getPostValue('txtPostcode');
$txtWoonplaats = getPostValue('txtWooonplaats');
$txtTelefoon = getPostValue('txtTelefoon');
$txtEmail = getPostValue('txtEmail');
$txtExtra = getPostValue('txtExtra');
// eerst testen of er een POST verzoek is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$errors = validate(
$ddlSoortOnderhoud,
$txtNaam,
$txtTelefoon,
$txtEmail
);
if(count($errors) == 0)
{
// Als er geen errors zijn dan gegevens opslaan of verzenden per email daarna door naar een andere pagina.
header('location: mail2.php');
exit;
}
// als we hier nog komen dan zijn er dus fouten en kunnen we die aan de gebruiker kenbaar maken
echo '<ul>';
foreach($errors as $error)
echo '<li class="imAlign_center fc3">' . $error . '</li>';
echo '</ul>';
}
?>
<form action="" method="post">
<fieldset class="alignleft">
<h3 class="ff2 fs12 fc2">Afspraak gegevens</h3>
<ul>
<li>
<label class="ff2 fs10 fc2" for="ddlSoortOnderhoud">Soort afspraak *</label>
<select id="ddlSoortOnderhoud" name="ddlSoortOnderhoud" class="ff2 fs10 fc2">
<?php echo getOptions($onderhoud, $ddlSoortOnderhoud); ?>
</select>
</li>
<li>
<label class="ff2 fs10 fc2" for="ddlAfspraakmaand">Gewenste datum</label>
<select id="ddlAfspraakdag" name="ddlAfspraakdag" class="datum_dag">
<?php echo getOptions($dagen, $ddlAfspraakdag); ?>
</select>
<select id="ddlAfspraakmaand" name="ddlAfspraakmaand" class="datum_maand">
<?php echo getOptions($maanden, $ddlAfspraakmaand); ?>
</select>
</li>
</ul>
<div class="clear"></div>
<h3 class="ff2 fs12 fc2">Autogegevens</h3>
<ul>
<li><label class="ff2 fs10 fc2" class="ff2 fs10 fc2" for="txtMerk">Merk</label><input type="text" id="txtMerk" name="txtMerk" value="<?php echo $txtMerk; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtModel">Model/type</label><input type="text" id="txtModel" name="txtModel" value="<?php echo $txtModel; ?>" /></li>
<li><label class="ff2 fs10 fc2" for="txtBouwjaar">Bouwjaar</label><input type="text" id="txtBouwjaar" name="txtBouwjaar" value="<?php echo $txtBouwjaar; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtKmstand">Kilometerstand</label><input type="text" id="txtKmstand" name="txtKmstand" value="<?php echo $txtKmstand; ?>"/></li>
<li>
<label class="ff2 fs10 fc2" for="ddlApkmaand">APK verloopdatum</label>
<select id="ddlApkmaand" name="ddlApkmaand" class="datum_maand">
<?php echo getOptions($maanden, $ddlApkmaand); ?>
</select>
<select id="ddlApkJaar" name="ddlApkJaar" class="datum_jaar">
<?php echo getOptions($jaren, $ddlApkJaar); ?>
</select>
</li>
</ul>
<div class="clear"></div>
</fieldset>
<fieldset class='alignright'>
<h3 class="ff2 fs12 fc2">Uw gegevens</h3>
<ul>
<li><label class="ff2 fs10 fc2" for="txtNaam">Naam *</label><input type="text" id="txtNaam" name="txtNaam"value="<?php echo $txtNaam; ?>" /></li>
<li><label class="ff2 fs10 fc2" for="txtAdres">Adres</label><input type="text" id="txtAdres" name="txtAdres" value="<?php echo $txtAdres; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtPostcode">Postcode</label><input type="text" id="txtPostcode" name="txtPostcode" class="postcode"value="<?php echo $txtPostcode; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtWoonplaats">Woonplaats</label><input type="text" id="txtWoonplaats" name="txtWoonplaats" value="<?php echo $txtWoonplaats; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtTelefoon">Telefoon *</label><input type="text" id="txtTelefoon" name="txtTelefoon" class="telefoon" value="<?php echo $txtTelefoon; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtEmail">E-mail *</label><input type="text" id="txtEmail" name="txtEmail" value="<?php echo $txtEmail; ?>"/></li>
<li><label class="ff2 fs10 fc2" for="txtExtra">Extra's en/of bijzonderheden</label><textarea class="ff2 fs10 fc2" id="txtExtra" name="txtExtra" rows="6" value="<?php echo $txtExtra; ?>"/></textarea></li>
<li><input type="submit" id="submitButton" name="submitButton" value="Verzend formulier" /></li>
<small>Velden gemarkeerd met * zijn verplicht</small>
</ul>
</fieldset>
</form>
Link gekopieerd
Je verbind door met een header, maar uiteraard bestaan die POST waardes dan nietmeer. Gebruik de include functie ipv header en waarschijnlijk zal de mail dan niet blanco zijn.
<?php header('location: mail2.php'); ?>
vervangen door...
<?php include 'mail2.php'; ?>
Link gekopieerd
Yes, hij is nu bijna goed. nog 2 dingen die niet kloppen.
1. Ik kan 1 mijn mail programma niet direct zien van wie hij is (staat geen naam aan de mail gekoppeld)
2. Hij komt alleen bij de CC binnen en niet bij de ontvanger
Link gekopieerd
<?php
$to = '
[email protected] '; // degene waar de mail naar toe verzonden moet worden
$headers .= "From: ".htmlspecialchars($_POST['txtNaam'])."\r\n"; // afzender. Dit zou iets kunnen zijn als
[email protected]
$headers .= "CC: ".htmlspecialchars($_POST['txtEmail'])."\r\n"; // een tweede ontvanger, bijvoorbeeld jouw eigen mailadres
$headers .= 'Reply-To:
[email protected] ' . "\r\n"; // op welk adres de ontvanger van de email moet antwoorden.
?>
Link gekopieerd
Nu komt er helemaal niets binnen
Link gekopieerd
Link gekopieerd
de headers worden netjes geechod, De email adressen kloppen.
Lijkt net of de mail geblokkeerd word
Link gekopieerd
Ja maar als je die headers niet laat zien kunnen wij je niet helpen. plak het gewoon even in je editor en wijzig de adressen die je niet openbaar wilt hebben even in iets anders en kopieer het en plak het eens hier.
Link gekopieerd