Maar met anti-spam heb ik nog problemen. Ik heb een GDlib plaatje dinges uit een ander script gehaald maar het wil niet echt werken (test maar eens maar niet overdreven vaak ;-)).
http://dsorganize.com/preview/index.php?location=suggestions
$cSpam = 3; // Anti Spam, X amount of minutes
$r<?
$randcode = mt_rand(100000, 999999);
$randcodesec = base64_encode($randcode);
if(!empty($_POST['send']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal errors.
if(strlen($_POST['name']) < 2)
{ $pError .= '- Please fill in your name<br />'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Please fill in your Email address<br />'; $pI++; }
if(strlen($_POST['suggestion']) < 3)
{ $pError .= '- Please fill in a suggestion<br />'; $pI++; }
if(strlen($_POST['explanation']) < 10)
{ $pError .= '- Please enter a explanation<br />'; $pI++; }
if($_POST['userSecurityCode'] != base64_decode($_POST['SecurityCode']) && $notcomplete != "1")
{ $pError .= '- Wrong security code<br />'; $pI++;; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? '<p class=\"red\">SUGGESTION NOT SUBMITTED</p>' : '<p class=\"red\">SUGGESTION NOT SUBMITTED</p>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
$date = date("Y-m-d");
$time = date("H:i:s");
$insert = "INSERT INTO DSO_suggestions (id, name, email, suggestion, explanation, status, date) VALUES ('', '".$_POST['name']."', '".$_POST['email']."', '".$_POST['suggestion']."', '".$_POST['explanation']."', 'new', '".$date."')";
mysql_query($insert)or die(mysql_error());
echo "<p class=\"red\">SUGGESTION SUCCESFULLY SUBMITTED!</p>";
setcookie('suggestions',1,time()+3*60);
$tijd = time();
$insert2 = "INSERT INTO DSO_suggestions_flood (id, ip, time) VALUES ('', '".$ip."', '".$time."')";
mysql_query($insert2)or die(mysql_error());
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pName = (isset($_POST['name'])) ? $_POST['name'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pSuggestion = (isset($_POST['suggestion'])) ? $_POST['suggestion'] : '';
$pExplanation = (isset($_POST['explanation'])) ? $_POST['explanation'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['suggestions']))
{ $pShow = true; echo '<p>You can only submit a suggestion once per 3 minutes.</p>'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
<div class="contact_item">Name</div>
<input class="contact_input" type="text" name="name" size="20" value="<?= $pName; ?>" />
<div class="contact_item">Email</div>
<input class="contact_input" type="text" name="email" size="20" value="<?= $pEmail; ?>" />
<div class="contact_item">Suggestion</div>
<input class="contact_input" type="text" name="suggestion" size="20" value="<?= $pSuggestion; ?>" />
<div class="contact_item">Explanation</div>
<textarea class="contact_input" name="explanation" cols="40" rows="10"><?= $pExplanation; ?></textarea>
<div class="contact_item">Security code (Anti-spam)</div>
<img src="locations/gd.php?randcode=<?php echo $randcodesec; ?>" alt="Security Code" /> <input type="text" name="userSecurityCode" /><input type="hidden" name="SecurityCode" value="<?php echo $randcodesec; ?>" />
<div class="contact_item"> </div>
<input class="contact_input" type="submit" value="Submit suggestion" name="send" /> <input class="contact_input" type="reset" value="Reset fields" />
</form>