/******************************
* Script: Form Mail *
* Versie: 4.0 *
* Author: SkYcE *
* Released: 07-12-2006 *
******************************/
//Set sessie voor flood optie
session_start();
/*
** Variabelen instellen
*/
// Naam voor als afzender van het bevestigingsmailtje
$var_name = "Bart";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email = "bja_01@hotmail.com";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U bent aan het flooden!";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 20;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips = array('255.255.255.0');
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg = "U bent geblokkeerd van het versturen van het contact formulier.";
/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipadres = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ipadres = $_SERVER['REMOTE_ADDR'];
}
return $ipadres;
}
//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//Validate form
if(!trim($_POST['naam'])) {
$ok = false;
$error .= '- Er is geen voor- of achternaam ingevuld
';
}
if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
$ok = false;
$error .= '- Er is geen geldig e-mailadres ingevuld
';
}
if(!trim($_POST['telefoon'])) {
$ok = false;
$error .= '- Er is geen telefoonnummer ingevuld
';
}
if(!trim($_POST['bericht'])) {
$ok = false;
$error .= '- Er is geen vraag of opmerking ingevuld
';
}
// E-mail naar $var_email (webmaster)
$msg_2_admin = "
Naam: ".$_POST['naam']."
E-mail adres: ".$_POST['email']."
Telefoonnummer: ".$_POST['telefoon']."
======================================================================
Vraag/Opmerking:
".$_POST['bericht']."
======================================================================
Note: ".$_POST['naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".
Het IP adres van ".$_POST['naam']." is: ".get_ip()."
Het hostadres van ".$_POST['naam']." is: ".$hostmask;
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['naam'].",
Bedankt voor het invullen van het formulier. Je hebt het formulier
ingevuld op ".date('d-m-Y')." om ".date('H:i').". Vanaf ".get_ip().".
======================================================================
Naam: ".$_POST['naam']."
Email: ".$_POST['email']."
Telefoonnummer: ".$_POST['telefoon']."
======================================================================
Vraag/Opmerking:
".$_POST['bericht'];
if(in_array(get_ip(),$var_ban_ips)) {
echo $var_ban_msg;
$form_view = false;
} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
echo $var_flood_msg;
$form_view = false;
} elseif ($ok == true) {
@$send = mail($var_email,
"Reservering: ".$_POST['naam'],
$msg_2_admin,
"From: ".$_POST['naam']."<".$_POST['email'].">");
if($send == 1) {
if($var_confirm == true){
mail($_POST['email'],
"Bevestiging reservering: ".$_POST['naam'],
$msg_2_poster,
"From: ".$var_name."<".$var_email.">");
}
echo'Beste '.$_POST['naam'].', uw aanvraag is verzonden, bedankt voor uw reactie.';
if($var_confirm == true){
echo'
Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
}
}else{
echo'Beste '.$_POST['naam'].', uw aanvraag is helaas niet verzonden.
Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
te verhelpen.
Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
Webmaster
Bedankt voor uw medewerking.';
}
$form_view = false;
$_SESSION["antiflood"] = time();
}
}
/*
** Formulier
*/
if($form_view == true) {
echo '';
if($error != '') {
echo '
'.$error.'';
}
echo '
';
}
?>