Hallo allen, alvast bedankt voor jullie reacties. Je zal vast gemerkt hebben dat ik maar wat sukkel met scripting in php en dat ik met wat free scripts aan het uitzoeken ben geweest. Jullie hebben mij terecht aangegeven dat ik best op zoek ga naar een beter script.
Daarom ben ik op zoek gegaan naar andere voorbeelden en ben ik tot dit eindresultaat gekomen. Kunnen jullie aangeven of dit beter is? ivm PHPMailer, hier snap ik dus niets van hé :(
contactpage.php
<?php
// importeer de functions file
require_once('contactfunctions.php');
?>
<!doctype html>
<html lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>mijn nieuwe website</title>
<link rel="stylesheet" href="css/style-contact.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/site2015v2/style2015.css" type="text/css" />
<link rel="stylesheet" href="/site2015v2/contact.css" type="text/css" />
<link rel="stylesheet" href="/site2015v2/fonts/font-caviardreams.css" type="text/css" charset="utf-8" />
</head>
<body itemscope itemtype="http://schema.org/WebPage">
<table id="pagina"><tr><td id='td_pagina_top'>
<div id="top">
<div class="holder">
<a href='/' title='geheim'><img src="/site2015v2/images/logo_2015.jpg" id="logo_top" title='logo' width='980' height='200'/></a>
<?php include 'nav_hoofdmenu.php';?>
</div>
</div>
</td></tr><tr><td class='inhoud_bg_grijs'>
<div id="content">
<div class="holder">
<?php include 'nav_submenu.php';?>
</div>
<div id='inhoud_tekst'>
<h1>Contacteer ons:</h1>
<p> In het hier onderstaande contact formulier kunt u uw vragen of opmerkingen invoeren en naar ons mailen door op de knop Verzenden te drukken. We zullen zo snel mogelijk proberen te antwoorden op u vraag/opmerking.</p>
<div id="contactformulier">
<?php
if(isset($_POST['submit'])){
// haal de gegevens binnen voor de email
$naam = $_POST['naam'];
$email = $_POST['email'];
$telefoon = $_POST['tel'];
$bericht = $_POST['bericht'];
$spam = $_POST['spam'];
$uitkomst = $_POST['uitkomst'];
// spamcheck gegevens
$hidden = $_POST['hid1'];
$hidden2 = $_POST['hid2'];
// eindresultaat : zal bepalen of de mail wordt verzonden of niet
$resultaat = true;
// foutmelding array
// hier komen de foutmeldingen in
$foutmelding['naamleeg'] = 0;
$foutmelding['emailleeg'] = 0;
$foutmelding['emailfout'] = 0;
$foutmelding['berichtleeg'] = 0;
$foutmelding['spamleeg'] = 0;
$foutmelding['spamfout'] = 0;
$foutmelding['verzendenfout'] = 0;
// controleren of de hidden fields leeg zijn
// deze moeten leeg zijn
if(empty($hidden1) && empty($hidden2)){
// controleren of de naam is ingevuld
if(checkLength($naam)){
// foutmelding geen naam ingevuld
$foutmelding['naamleeg'] = 1;
$resultaat = false;
}
// controleren of de email is ingevuld
if(checkLength($email)){
// foutmelding geen geldig emailadres
$foutmelding['emailleeg'] = 1;
$resultaat = false;
}
else{
// controleren op geldigheid van emailadres
if(checkEmail($email)){
// foutmelding geen geldig emailadres
$foutmelding['emailfout'] = 1;
$resultaat = false;
}
}
// controleren of het bericht is ingevuld
if(checkLength($bericht)){
// foutmelding te kort bericht
$foutmelding['berichtleeg'] = 1;
$resultaat = false;
}
// controleren of de spamcontrole is ingevuld
if(checkLength($spam)){
// foutmelding geen spamresultaat ingevuld
$foutmelding['spamleeg'] = 1;
$resultaat = false;
}
else{
if(checkSpam($spam,$uitkomst)){
// foutmelding foutief spamresultaat
$foutmelding['spamfout'] = 1;
$resultaat = false;
}
}
}
else{
// foutmelding van ingevulde spamvelden
$resultaat = false;
}
if($resultaat){
// controleren of de email verstuurt is
if(verstuurMail($_POST)){
$_POST = null;
}
// de email is niet verstuurd
else{
$foutmelding['verzendenfout'] = 1;
$resultaat = false;
}
}
}
?>
<!--
Verborgen veld : afgehandeld
-->
<div id="succes" <?php if($resultaat == false){ echo 'class="hidden"';}?>>
<p>Uw bericht is succesvol verstuurd!</p>
</div>
<!--
Einde verborgen velden
-->
<!--
Hier begint het formulier
-->
</form>
<div id="form">
<form method="post" action="">
<table>
<tr>
<td valign="top">
<label for="naam"><abbr lang="nl" title="Vul uw naam in aub">Naam:</abbr> *</label>
</td>
<td>
<input type="text" name="naam" id="naam" value="<?php echo $_POST['naam']; ?>" />
<p class="fout <?php if($foutmelding['naamleeg'] == 0) echo 'hidden';?>" id="naamleeg">Naam is verplicht!</p>
</td>
</tr>
<tr>
<td valign="top">
<label for="email"><abbr lang="nl" title="Vul een geldig emailadres in. Bijvoorbeeld :
[email protected]">Email</abbr>: *</label>
</td>
<td>
<input type="text" name="email" id="email" value="<?php echo $_POST['email']; ?>"/>
<p class="fout <?php if($foutmelding['emailleeg'] == 0) echo 'hidden';?>" id="emailleeg">Email is verplicht!</p>
<p class="fout <?php if($foutmelding['emailfout'] == 0) echo 'hidden';?>" id="emailfout">Geldige email is verplicht!</p>
</td>
</tr>
<tr>
<td valign="top">
<label for="bericht"><abbr lang="nl" title="Vul uw aanvraag hier in aub">Bericht:</abbr> *</label>
</td>
<td>
<textarea name="bericht" id="bericht" rows="6" cols="38"><?php echo $_POST['bericht']; ?></textarea>
<p class="fout <?php if($foutmelding['berichtleeg'] == 0) echo 'hidden';?>" id="berichtleeg">Bericht is verplicht!</p>
</td>
</tr>
<tr>
<td valign="top">
<label for="spam"><abbr lang="nl" title="Dit is een test om te controleren of de gebruiker van dit formulier wel degelijk een mens is.">Spamcontrole</abbr>: *</label>
</td>
<td valign="top">
<span id="spamvraag">
Hoeveel is
<span id="nummer_1">
<?php echo $_SESSION['random_cijfer_1'];?>
</span>
plus (+)
<span id="nummer_2">
<?php echo $_SESSION['random_cijfer_2'];?>
</span> :
</span>
<input type="text" name="spam" id="spam" class="spamtext" />
<p class="fout <?php if($foutmelding['spamleeg'] == 0) echo 'hidden';?>" id="spamleeg">Spam-uitkomst is verplicht!</p>
<p class="fout <?php if($foutmelding['spamfout'] == 0) echo 'hidden';?>" id="spamfout">Dit is niet de juiste uitkomst!</p>
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">
<p class="notice">Velden aangeduid met een asterisk (*) zijn verplicht in te vullen</p>
<div id="screenreaders" class="hidden">
<p>
Onderstaande velden NIET invullen indien u geen spambot bent!
Als u ze invult nemen wij aan dat u een spambot bent en zal het formulier niet verwerkt worden.
</p>
<input type="hidden" id="hid1" name="hid1" value=""/>
<input type="text" id="hid2" name="hid2" value=""/>
<input type="hidden" id="uitkomst" name="uitkomst" readonly="readonly" value="<?php echo md5($_SESSION['test_uitkomst']); ?>" />
</div>
</td>
</tr>
<tr>
<td valign="top">
</td>
<td valign="top">
<div id="foutdiv">
</div>
<input type="submit" value="Verzend bericht" class="button small orange" id="submit" name="submit" />
<input type="reset" value="Leeg maken" class="button small grey"/> <span id="loading"> Even geduld aub.. </span>
<p class="fout <?php if($foutmelding['vezendenfout'] == 0) echo 'hidden';?>" id="verzendenfout">Er was een fout bij het versturen van de email!</p>
</td>
</tr>
</table>
</form>
</div>
<!--
Einde formulier
-->
</td></tr>
</div></div>
<tr><td class='td_valign_bottom_black'>
<div class="holder">
<table id="bottom"><tr>
<td class='width_430'><h5>Adres</h5>
<h3>naam<br/>
adres<br/>
2960 Sint-Lenaarts </h3>
</td>
<td class='width_430'><h5>Secretariaat</h5>
<h3>naam<br/>
adres<br/>
2960 Sint-Lenaarts </h3>
</td>
<td class='width_140'><h5>Contacteer ons</h5>
<h3> Tel 0000000<br/>
<br/>
<a href="mailto:
[email protected]"class="hyperlink">info@mijnsite.be</a></h3>
</td>
</tr>
</table>
</div>
</td></tr>
<tr><td id='td_page_footer' class='bottom_black'>
<span id='copyright'> © By naam Sint-Lenaarts</a></span>
</td></tr>
</table>
<script src='/js/jquery-latest.min.js' type='text/javascript'></script><script>(function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document)</script>
</body>
</html>
contactconfig.php
<?php
/*
* Configuratie van de email settings
*/
// timezone en taalinstelling
date_default_timezone_set('Europe/Brussels');
setlocale(LC_TIME, 'NL_nl');
// het emailadres naar waar het contactformulier moet verzonden worden
define("ONTVANGER","
[email protected]");
// het onderwerp van de email
define("ONDERWERP","Contact via uw website");
// html emails(true) of niet(false)
define("HTMLEMAILS",true);
// Geef de maximum waarde voor de bereking van de spamuitkomst
define("MAX_CIJFER",8);
// Geef de minimum waarde voor de bereking van de spamuitkomst
define("MIN_CIJFER",2);
/*
* Configuratie van de spamsom
*/
// als de sessie variabelen nog niet gezet zijn
// genereer dan nieuwe variabelen
$_SESSION['test_uitkomst'] = null;
if($_SESSION['test_uitkomst'] == null){
// genereer het eerste random cijfer
// en zet het in de session
$random_cijfer_1 = intval(rand(MIN_CIJFER,MAX_CIJFER));
$_SESSION['random_cijfer_1'] = $random_cijfer_1;
// genereer het tweede random cijfer
// en zet het in de session
$random_cijfer_2 = intval(rand(MIN_CIJFER,MAX_CIJFER));
$_SESSION['random_cijfer_2'] = $random_cijfer_2;
// bereken de uitkomst
// en zet het in de session
$_SESSION['test_uitkomst'] = bcadd($random_cijfer_1,$random_cijfer_2);
}
?>
contactfunctions.php
<?php
/**
Dit script is beperkt in gebruik. Het mag enkel gebruikt worden op
websites zonder commerciele doeleinden.
Licenties :
http://creativecommons.org/licenses/by-nc/3.0/
Auteur : Sam Vloeberghs -
http://www.samvloeberghs.be
*/
// start een sessie of zet ze voort voor de spamcheck
session_start();
// include de config
require_once('contactconfig.php');
/*
* De functie controleert een gegeven email op geldigheid
* @return bool
*/
function checkEmail($email){
// definieer het patroon voor geldige emails
$patroon = "/^[A-z0-9\._-]+". "@". "[A-z0-9][A-z0-9-]*". "(\.[A-z0-9_-]+)*". "\.([A-z]{2,6})$/";
// vergelijk het patroon met de email
// bij geldige overéénkomst return true
// bij ongeldige overéénkomst return false
return preg_match($patroon, $email) ? FALSE : TRUE;
}
/*
* Deze functie controleert een gegeven waarde op lengte
* @return bool
*/
function checkLength($waarde){
// als de gegeven waarde leeg is
// return false
if(empty($waarde)){
return true;
}
// als de gegeven waarde niet leeg is
// return true
else{
return false;
}
}
/*
* Deze functie controleert een gegeven waarde op lengte
* @return bool
*/
function checkSpam($spam,$uitkomst){
// als het gegeven spamresultaat niet overéénkom met de uitkomst
// return false;
if(md5($spam) != $uitkomst){
return true;
}
// als het gegeven spamresultaat overéénkom met de uitkomst
// return true;
else{
return false;
}
}
/*
* Deze functie switched tussen de 2 types van email ( html en plaintext )
* @return bool
*/
function verstuurMail($waarden){
// resultaat van functie
$resultaat = false;
// als de configuratie html emails toelaat
if(HTMLEMAILS){
$resultaat = sendHtmlEmail($waarden);
}
// geen html emails toegelaten
else{
$resultaat = sendPlainTextEmail($waarden);
}
// return resultaat
return $resultaat;
}
/*
* Deze functie verstuurt de HTML email
* @return bool
*/
function sendHtmlEmail($waarden){
// time stamp
$timestamp = date("\o\p j F Y \o\m G\ui");
// stel het emailbericht samen
$message = "
<html>
<head>
<title>".ONDERWERP."</title>
</head>
<body>
<p style='font-size:0.9em;border-bottom:1px solid #000;padding-bottom:10px;'></p>
<table cellpadding='0' cellspacing='0'>
<tr>
<td style='font-weight:bold;padding:0 10px 3px 0;'>Naam:</td>
<td>".$waarden['naam']."</td>
</tr>
<tr>
<td style='font-weight:bold;padding:0 10px 3px 0;'>Email:</td>
<td>".$waarden['email']."</td>
</tr>
<tr>
<td colspan='2'> </td>
</tr>
<tr>
<td colspan='2'>".$waarden['bericht']."</td>
</tr>
</table>
<p style='font-size:0.9em;border-top:1px solid #000;padding-top:10px;'>Deze email werd verstuurd $timestamp .</p>
</body>
</html>
";
// To send HTML mail, the Content-type header must be set
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
// zet de headers
$headers .= "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
$headers .= "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";
// Mail it
return mail(ONTVANGER, ONDERWERP, $message, $headers);
}
/*
* Deze functie verstuurt de PlainText email
* @return bool
*/
function sendPlainTextEmail($waarden){
// timestamp
$timestamp = date("\o\p j F Y \o\m G\ui");
// stel het emailbericht samen
$message .= ONDERWERP."\r\n\r\n";
$message .= "Naam: ".$waarden['naam']." \r\n";
$message .= "Email: ".$waarden['email']." \r\n";
$message .= "Telefoon: ".$waarden['tel']." \r\n\r\n";
$message .= $waarden['bericht']." \r\n\r\n";
$message .= "Deze email werd verstuurd $timestap ";
// zet de headers
$headers = "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
$headers .= "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";
// Mail it
return mail(ONTVANGER, ONDERWERP, $message, $headers);
}
?>
[size=xsmall]
Toevoeging op 19/11/2015 21:02:01:[/size]
Als ok is, zou ik dan kunnen aanpassen dat wanneer de email is verstuurd ik een nieuwe document krijg met de tekst 'Uw bericht is succesvol verstuurd' U zal binnen de 3 sec terug naar de home page gaan?
Wat is de code hiervoor?