<style type="text/css">
#lurad {
width: 1px; height: 1px; margin: 0; padding: 0;
overflow: hidden; text-indent: -9000px;
/* alternativt display:none; */
}
</style>
<div id="contactform">
<form action="" method="post">
<div id="lurad"><input type="text" name="comment" value="" id="comment" /><label for="comment">Lämna detta fält tomt</label></div>
<p><input type="text" name="name" id="name" /> <label for="name">Ditt namn</label></p>
<p><input type="text" name="email" id="email" /> <label for="email">Din e-mailadress</label></p>
<p><label for="message">Ditt meddelande:</label><br />
<textarea name="message" rows="9" cols="60" id="message"></textarea></p>
<p><button name="submit" type="submit" value="send" class="button">skicka</button></p>
</form>
<?php
extract($_POST);
if ($_POST['submit'] && (strlen($_POST['comment']) < 1)) {
if($name && $email && $message ) { //kollar så alla fält är ifyllda
if (return_valid($email)) {
//$message = about_mail()."\n"."\n".$message; //funktion som tilldelar message en del info
$message = about_mail()."\n";
foreach($_POST AS $key=>$val) {
$message .= $key .": ". $val ."\n";
}
mail($din_email,$subject,$message,"From: $name <$email>"); // skickar mailet, och message
//$newlog=new logging("logs","log.txt","log.xml"); //instantierar logg klassen
//$newlog->create_txt(); //kör loggfunktioner i logg klassen
//$newlog->create_xml();
echo "<p><strong>Tack för ditt meddelande!</strong> Jag återkommer så snart som möjligt.</p>";
} else {
echo "<p>Ogiltig e-postadress. Var vänlig och fyll i en korrekt.</p>";
}
} else {
print "<p>Alla fält är inte ifyllda!</p>";
}
}
// Returnerar sant om det är en korrekt adress.
function return_valid($e_mail) {
if(
ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $e_mail)) {
return TRUE;
}
else {
return FALSE;
}
}
// returnerar info om adressaten i mailet. i meddelande delens topp.
function about_mail() {
global $din_site;
//$headline3="| obs!, denna info sparas i xml filen log.xml "."\n";
//$headline2="| ----------------------------------------------"."\n";
$headline1="E-post från ".$din_site."\n";
$date.="Skickades ".date("D-d-M-Y")."\n";
$time.="Klockan: ".date("H:i:s")."\n";
$ip.="Från ip nummer: ".$_SERVER['REMOTE_ADDR']."\n";
$port.="Adressatens port: ".$_SERVER['REMOTE_PORT']." \n";
$browser.="Adressatens läsare: ".$_SERVER['HTTP_USER_AGENT']."\n";
$all = ($headline1.$date.$time.$ip.$port.$browser);
return "$all";
}
?></div>
Finns det någon vänlig skäl som skulle kunna hjälpa mig att lägga till någon form av spamskydd i mitt formulär? Jag antar att det räcker med nåt i stil med "Vad blir 1+1?" Eller ni kanske har en smartare lösning som besökaren slipper märka?
Så här ser scriptet ut:
<div id="contactform">
<form action="" method="post">
<p><input type="text" name="name" id="name" /> <label for="name">Ditt namn</label></p>
<p><input type="text" name="email" id="email" /> <label for="email">Din e-mailadress</label></p>
<p><label for="message">Ditt meddelande:</label><br />
<textarea name="message" rows="9" cols="60" id="message"></textarea></p>
<p><button name="submit" type="submit" value="send" class="button">skicka</button></p>
</form>
<?php
extract($_POST);
if ($_POST['submit']) {
if($name && $email && $message ) { //kollar så alla fält är ifyllda
if (return_valid($email)) {
//$message = about_mail()."\n"."\n".$message; //funktion som tilldelar message en del info
$message = about_mail()."\n";
foreach($_POST AS $key=>$val) {
$message .= $key .": ". $val ."\n";
}
mail($din_email,$subject,$message,"From: $name <$email>"); // skickar mailet, och message
//$newlog=new logging("logs","log.txt","log.xml"); //instantierar logg klassen
//$newlog->create_txt(); //kör loggfunktioner i logg klassen
//$newlog->create_xml();
echo "<p><strong>Tack för ditt meddelande!</strong> Jag återkommer så snart som möjligt.</p>";
} else {
echo "<p>Ogiltig e-postadress. Var vänlig och fyll i en korrekt.</p>";
}
} else {
print "<p>Alla fält är inte ifyllda!</p>";
}
}
// Returnerar sant om det är en korrekt adress.
function return_valid($e_mail) {
if(
ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $e_mail)) {
return TRUE;
}
else {
return FALSE;
}
}
// returnerar info om adressaten i mailet. i meddelande delens topp.
function about_mail() {
global $din_site;
//$headline3="| obs!, denna info sparas i xml filen log.xml "."\n";
//$headline2="| ----------------------------------------------"."\n";
$headline1="E-post från ".$din_site."\n";
$date.="Skickades ".date("D-d-M-Y")."\n";
$time.="Klockan: ".date("H:i:s")."\n";
$ip.="Från ip nummer: ".$_SERVER['REMOTE_ADDR']."\n";
$port.="Adressatens port: ".$_SERVER['REMOTE_PORT']." \n";
$browser.="Adressatens läsare: ".$_SERVER['HTTP_USER_AGENT']."\n";
$all = ($headline1.$date.$time.$ip.$port.$browser);
return "$all";
}
?></div>
Tacksam för hjälp. Får massa spam i det här formuläret. :l

