<?
include "mailform.php";
echo mailForm(); ?>
-----mailform.php-----
<?php
#############################################
# Mail formular v1 #
#
http://martin-nielsen.com #
#-------------------------------------------#
# Mailformular script med anti spam - nemt #
# at opsætte #
#############################################
########### indstallation ###################
/*
Mail formular v1 er lavet så det er nemt at integrere i dit nuværende design
1) Læg koden ind i et nyt php dokument (mailForm.php) og gem det på serveren et sted hvor filen kan tilgåes gennem en browser
2) Ændrer de 6 indstillinger herunder
3) Åben det dokument hvor mailformularen skal vises
3.1 Indsæt <?php include("sti/til/mailFormular.php"); ?> i toppen af dokumentet før alt andet - husk at ændre stien så det passer
3.1.1 NB Hvis du inkluderer dit indhold i fx index.php skal ovenstående sættes ind i toppen af index.php
3.2 Der hvor du ønsker mail formularen skal fremkomme skriver du <? echo mailForm(); ?>
4)Vupti - så burde det være klaret
5) Du kan ændre udseende af formularen ved at style følgerne ids
#mailform_form - selve formularen
#mailform_navn - navnet på afsender
#mailform_emne - Emne linjen
#mailform_email - Afsender e-mail
#mailform_kode - Antispam feltet
#mailform_besked - Besked feltet
#mailform_sendMail - Afsend knappen
*/
##############################
## settings / indstillinger ##
##############################
$sendTo="mail@domain.dk"; //din e-mail adresse
$ditNavn="domain.dk"; //dit navn
$antiSpam=1; //Antispam - 0 for ingen antispam 1 for antispam - antispam kræver GD installeret på serveren
$subjectRestricted=0; //begræns emner 0 for frit emne, 1 for begrænset opsæt herunder
$restrictedSubjects="Comments,Complaints,Questions"; //begrænset emner, adskild med komma
$reply="<p>Tak for e-mailen, vi vender tilbage så hurtigt som muligt</p>"; //Svar besked når mailen er afsendt
$stiTilScript="mailform.php"; //stien til mailForm.php
########################################### Ingen ændringer herunder nødvendigt ###########################################
$done=0;
if ($_GET['action']=="code") {
session_name('wt_spam');
session_start();
function imgKode() { //funktion til autogenerering af 7 cifret submit kode
$tilladte = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789"; //tilladte tegn
for ($i=1;$i<=7;$i++) { ##løkke der vælger 7 tilfældige bogstaver fra de tilladte
$kode .= $tilladte[mt_rand(0,(strlen($tilladte)-1))]; //hent tilfeldtigt tegn ud fra $tilladte
}
return $kode; //retuner koden
}
header("Content-type: image/jpeg");
header("Cache-Control: must-revalidate"); //sørg for siden altid er opdateret
header("Last-modified: ".gmdate("D, d M Y H:i:s", time())." GMT"); //skift sidst opdateret
header("Expires: ".gmdate("D, d M Y H:i:s", time())." GMT"); //sæt udløb til nu
$k=imgKode(); //generer kode
$checkImg = ImageCreate(75, 30); //lav nyt billede
$bg = imagecolorallocate($checkImg, 204, 204, 204); //sæt baggrund på billede til grå
$sort = imagecolorallocate($checkImg, 0, 0, 0); //lav sort farve
imagerectangle($checkImg,0, 0,74, 29, $sort); //lav kasse rundt om billedet i sort
imagestring($checkImg, 5, 6, 6, $k, $sort); //indsæt key på billedet i sort
imagejpeg($checkImg); //udskriv billede til skærm
$_SESSION['imgkey']=md5($k); //opret session med $key i md5 encryption
die();
}
### funktioner###
function check_mail($email) {
if (eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,6}$", $email)) {
return true;
}
return false;
}
function mailto($fromname, $fromaddress, $toname, $toaddress, $subject, $message) {
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: \"".$fromname."\" <".$fromaddress.">\n";
return mail($toaddress, $subject, $message, $headers);
}
function error($besked) {
return '<span style="color:red">'.$besked.'</span>';
}
if ($antiSpam) session_name('wt_spam');session_start();
if (!check_mail($sendTo)) die(error('Din $sendTo adrresse er ikke gyldig'));
function mailForm() {
global $sendTo, $antiSpam,$subjectRestricted, $restrictedSubjects,$reply,$done,$error,$stiTilScript,$ditNavn;
$error=array();
if ($antiSpam) $key=$_SESSION['imgkey'];$check=md5($_POST['kode']);
if (isset($_POST['sendMail']) && (empty($_POST['navn']) || empty($_POST['besked']) || empty($_POST['emne']) || !check_mail($_POST['e-mail']) || ($antiSpam && $key!=$check))) {
$error[0]=error('Der opstod en fejl - alle felter skal være udfyldt korrekt - * indikerer fejl');
if (empty($_POST['navn'])) $error[1]=error('*');
if (empty($_POST['emne'])) $error[2]=error('*');
if (empty($_POST['e-mail'])) $error[3]=error('*');
if (empty($_POST['besked'])) $error[4]=error('*');
if (!check_mail($_POST['e-mail'])) $error[3]=error('*');
if ($key!=$check) $error[5]=error('*');
} else if(isset($_POST['sendMail'])) { $done=1; }
if ($done) {
mailto($_POST['navn'],$_POST['e-mail'],$ditNavn,$sendTo,$_POST['emne'],htmlspecialchars($_POST['besked']));
session_unregister('imgkey');
return $reply;
} else {
$antispam=$antiSpam?'<fieldset style="font-size:1em;">
<legend>Anti-spam: Indtast bogstaverne du ser på billedet</legend>
<p> <img src="'.$stiTilScript.'?action=code" alt="Billede" style="float:left;margin-right:10px;"/> <label><input type="text" id="mailform_kode" name="kode" maxlength="7" style="height:25px;margin:0;padding:0;width:5em"/> '.$error[5].'</label></p>
</fieldset>':'';
if ($subjectRestricted) {
$tmp=split(',',$restrictedSubjects);
$emne='<p><label><select name="emne" id="mailform_emne" >';
foreach($tmp as $subject) {
$emne.='<option value="'.$subject.'">'.$subject.'</option>';
}
$emne.='</select> Emne</label></p>';
} else $emne='<p><label><input name="emne" id="mailform_emne" type="text" value="'.$_POST['emne'].'"/> Emne '.$error[2].'</label></p>';
$form='<!-- kontaktformular fra
http://martin-nielsen.com--> '.$error[0].'
<form action="" method="post" id="mailform_form" style="width:300px;">
<p><label><input name="navn" id="mailform_navn" type="text" value="'.$_POST['navn'].'"/> Navn '.$error[1].'</label></p>
'.$emne.'
<p><label><input name="e-mail" id="mailform_email" type="text" value="'.$_POST['e-mail'].'"/> E-mail '.$error[3].'</label></p>
<p><label>Besked '.$error[4].'<br />
<textarea name="besked" id="mailform_besked" cols="40" rows="5">'.$_POST['besked'].'</textarea></label></p>
'.$antispam.'
<p><label>
<input name="sendMail" type="submit" id="mailform_sendMail" value="Send e-mail"/></label></p>
</form>';
return $form;
}
}
?>