Ik heb enkele php-forms op mijn site staan en wordt nu geteistert door spam op deze forms. Mijn idee was om er een CAPTCHA in te steken. Vraag is nu of ik de captcha van het forum kan gebruiken hiervoor, en hoe ik dat doe.
Alvast bedankt voor de hulp.
Firechief
PS: hieronder de code van zo'n form
Code: Selecteer alles
<?php
/*
Script gemaakt door: Jordi Betting
Dit script mag alleen gepubliceerd staan op
www.websiteforum.nl en www.anouksweb.nl
Dit script mag niet verhandeld worden en mag alleen gebruikt
worden voor eigen gebruik.
Voor vragen: www.websiteforum.nl
*/
#########################
# Start Configuration #
#########################
$sWebsitenaam = "www.fjrijders.net"; //vul hier de naam van jouw website in
$sMail = "*********@fjrijders.net, *******@fjrijders.net"; //Het e-mailadres waarnaar de mail word gestuurd. Voor meerdere adressen, scheid de emailadressen met een comma.
$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail
$sOnderwerp = "Inschrijving Clublid FJRijders"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat
$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt
$bBedanktmail = TRUE; //Moet er een bedankt mailtje gestuurd worden aan die gene die verstuurde? (e-mail invoerveld is dan dus verplicht)
$sBedanktmail = "Bedankt voor Uw inschrijving."; //de tekst van het bedank mailtje
$sBedanktfrom = "clublid@fjrijders.net"; //vanaf welk adres moet dit bedankmailtje vestuurd worden?
$sBedanktsubj = "Bedankt!"; //dit is het ondewerp van het bedanktmailtje
$bBedanktTxt = FALSE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven
$sBedanktTxt = "De e-mail is verzonden."; //bedankt text
$sBedanktURL = "http://www.fjrijders.net/Formulieren/Givi/jstantw.htm"; //bedankt url
#########################
# End Configuration #
#########################
if (count($_POST) > 0)
{
//controleer of de $bHTML wel fatsoenlijk is ingesteld
if(!is_bool($bHTML))
{
print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!");
exit;
}
$errors = array();//definieer arrray voor de errormeldingen
$aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje
foreach($_POST as $key=>$value)
{
$_POST[$key] = trim($value); //maak alle waarden netjes
}
foreach($aKeys as $key=>$value)
{
$aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters
}
$aMail = explode(",",$sMail);
$aDomein = explode("@",$sMail[0]);
$sDomein = $aMail[1];
//mail detectie
if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; }
elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; }
elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; }
elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; }
elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; }
elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; }
else
{
$sFrom = "clublid@".$sDomein;
$bBedanktmail = FALSE;
}
if ($bOnderwerp)
{
$sSubject = $sOnderwerp;
}
else
{
if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; }
elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; }
elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }
elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; }
else { $sSubject = $sOnderwerp; }
}
//controle emailadres
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$sFrom))
{
$error[] = "Het opgegeven e-mail adres is niet geldig.";
}
//check alle verplichte velden
foreach($_POST AS $key => $value)
{
if(substr($key,0,1) == 1)
{
if (empty($_POST[$key]))
{
$name = substr($key,1);
$error[] = "Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld.";
}
}
}
//als er een error was
if (isset($error) && count($error) > 0)
{
//poep alle errors uit
print("<ul style=\"list-style: none; color: red;\">\n");
foreach($error as $value)
{
print("\t<li>".$value."</li>\n");
}
print("</ul>");
}
else
{
$headers = "MIME-Version: 1.0\n";
$headers .= "From: Clublid <noreply@fjrijders.net>\n";
$headers .= "Reply-to: noreply@fjrijders.net\n";
$headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";
$sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf www.fjrijders.net is verstuurd.
Gelieve hier niet op te antwoorden\n\n";
foreach($_POST as $key => $value)
{
if (substr($key,0,1) == 1) { $key = substr($key,1); }
$sContent .= ucfirst(strtolower($key)).": ".$value."\n\n";
}
$sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n";
$enter = "
";
$sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ;
foreach ($aMail as $sMailAdress)
{
mail(trim($sMailAdress),$sSubject,$sContent,$headers);
}
if ($bBedanktmail)
{
$sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ;
mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers);
}
?>
<body link="#FF0000" vlink="#FF0000" bgcolor="#000000">
<p align="center">
<img border="0" src="http://www.fjrijders.net/Formulieren/Reclamebord Zwart.jpg" width="1024" height="295"></p>
<p align="center"><u><b><font face="Comic Sans MS" color="#FF0000" size="5"></font></b></u></p>
<font face="Comic Sans MS" color="#FF0000">Beste </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Nicknaam']; ?>,
<br />
Uw gegevens werden succesvol verzonden. Hieronder vind U de verzonden gegevens:</font><br /><br />
<font face="Comic Sans MS" color="#FF0000">Nicknaam: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Nicknaam']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Nicknaam Duo: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Nicknaam_Duo']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Naam: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Naam']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Naam Duo: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Naam_Duo']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Voornaam: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Voornaam']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Voornaam Duo: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Voornaam_Duo']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Straat: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Straat']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Nr: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Nr']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Postcode: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Postcode']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Gemeente: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Gemeente']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Beroep: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Beroep']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Tel/Gsm: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Tel/Gsm']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">E-mail: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['e-mail']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Geboortedatum: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Geboortedatum']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Jaren Rijervaring: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Jaren_Rijervaring']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Gem. Km/Jaar: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Km/Jaar']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Merk: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Merk']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Type: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Type']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Bouwjaar: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Bouwjaar']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">KM-Stand: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Km-Stand']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Nummerplaat: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Nr-plaat']; ?></font><br />
<font face="Comic Sans MS" color="#FF0000">Lidgeld betaald: </font><font face="Comic Sans MS" color="#0000FF"><?php echo $_POST['1Lidgeld']; ?></font><br />
<br />
<p align="center"><font face="Comic Sans MS" color="#FF0000"><a href="http://www.fjrijders.net/Formulieren/index.htm">Klik hier om terug te keren naar "Formulieren"</a></font></p>
<?php
}
}
else
{
print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\">\n"); ?>
<!-- Zet hieronder je formulier neer -->
<html>
<meta http-equiv="Content-Language" content="nl-be">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Clublid-formulier</title>
<body link="#FF0000" vlink="#FF0000" bgcolor="#000000">
<p align="center">
<img border="0" src="http://www.fjrijders.net/Formulieren/Reclamebord Zwart.jpg" width="1024" height="295"></p>
<p align="center"><u><b><font face="Comic Sans MS" color="#FF0000" size="5">Inschrijvingsformulier</font></b></u></p>
<p align="center"> </p>
<u><font color="#FF0000" face="Comic Sans MS">Alle velden zijn verplicht in te vullen !</font></u><br><br>
<table width="85%" border="5" align="center" bordercolor="#0000FF" bgcolor="#333333">
<td valign="middle" width="100%" align="center"><font color="#CCCCCC" face="Comic Sans MS" size="2">Formulieren die doorgestuurd worden waarvan gegevens ontbreken of niet correct zijn ingevuld, zullen worden geweigerd!<br>Indien U geen Duo wenst op te geven, vult U in de desbetreffende vakjes "geen" in zonder de aanhalingstekens!<br>Alle gegevens worden vertrouwelijk behandeld en zullen niet aan derden worden doorgespeeld zonder Uw toestemming.</font>
</td>
</table>
<br><br>
<u><b><font color="#FF0000" face="Comic Sans MS">Rijderspaspoort</font></b></u>
<br><br>
<table width="100%" border="0" cellpadding="5" cellspacing="5" bgcolor="#000000"><tr>
<td valign="middle" width="15%"><font color="#FF0000" face="Comic Sans MS">Nickname:</font> </td>
<td valign="middle" width="15%"><input type="text" name="1Nicknaam" size="25"> </td>
<td valign="middle" width="15%"><font color="#FF0000" face="Comic Sans MS">Nickname Duo:</font> </td>
<td valign="middle" width="15%"><input type="text" name="1Nicknaam_Duo" size="25"> </td>
<td valign="middle" width="40%"><font color="#CCCCCC" face="Comic Sans MS" size="2">(Gebruikersnaam op het Forum)</font> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Naam:</font> </td>
<td valign="middle"><input type="text" name="1Naam" size="25"> </td>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Naam Duo:</font> </td>
<td valign="middle"><input type="text" name="1Naam_Duo" size="25"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Voornaam:</font> </td>
<td valign="middle"><input type="text" name="1Voornaam" size="25"> </td>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Voornaam Duo:</font> </td>
<td valign="middle"><input type="text" name="1Voornaam_Duo" size="25"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Straat:</font> </td>
<td valign="middle"><input type="text" name="1Straat" size="25"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Nr:</font> </td>
<td valign="middle"><input type="text" name="1Nr" size="5" maxlength="4"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Postcode:</font> </td>
<td valign="middle"><input type="text" name="1Postcode" size="5" maxlength="6"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Gemeente:</font> </td>
<td valign="middle"><input type="text" name="1Gemeente" size="25"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Beroep:</font> </td>
<td valign="middle"><input type="text" name="1Beroep" size="25"> </td>
<td colspan="3" valign="middle"> <font color="#CCCCCC" face="Comic Sans MS" size="2">(Bediende-Arbeider-Ambtenaar-Zelstandige-Vrij Beroep-Specificatie mag altijd)</font> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Tel/Gsm:</font> </td>
<td valign="middle"><input type="text" name="1Tel/Gsm" size="15"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">E-mail:</font> </td>
<td valign="middle"><input type="text" name="e-mail" size="25"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Geboortedatum:</font> </td>
<td valign="middle"><input type="text" name="1Geboortedatum" size="10"> </td>
<td colspan="3" valign="middle"> <font color="#CCCCCC" face="Comic Sans MS" size="2">(dd-mm-jjjj)</font> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Jaren Rijervaring:</font> </td>
<td valign="middle"><input type="text" name="1Jaren_Rijervaring" size="10"> </td>
</tr>
<tr>
<td valign="middle"><font color="#FF0000" face="Comic Sans MS">Gemiddeld Km/Jaar:</font> </td>
<td valign="middle"><input type="text" name="1Km/Jaar" size="10"> </td>
</tr>
</table> <font color="#CCCCCC" face="Comic Sans MS" size="2"> </font></td>
</tr>
</table>
<br>
<u><b><font color="#FF0000" face="Comic Sans MS">De Motor</font></b></u>
<br><br>
<table width="100%" border="0" cellpadding="5" cellspacing="5" bgcolor="#000000">
<tr>
<td valign="middle" width="15%">
<font color="#FF0000" face="Comic Sans MS">Merk:</font>
</td>
<td valign="middle" width="25%">
<input type="text" name="1Merk" size="10" value="Yamaha">
</td>
<td valign="middle">
</td>
</tr>
<tr>
<td valign="middle">
<font color="#FF0000" face="Comic Sans MS">Type:</font>
</td>
<td valign="middle">
<select name="1Type">
<option value="--Kies--" selected>--Kies--</option>
<option value="FJR 1300">FJR 1300</option>
<option value="FJR 1300-A">FJR 1300-A</option>
<option value="FJR 1300-AS">FJR 1300-AS</option>
</select>
</td>
<td valign="middle">
</td>
</tr>
<tr>
<td valign="middle">
<font color="#FF0000" face="Comic Sans MS">Bouwjaar:</font>
</td>
<td valign="middle">
<select name="1Bouwjaar">
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>
</td>
<td valign="middle">
</td>
</tr>
<tr>
<td valign="middle">
<font color="#FF0000" face="Comic Sans MS">Km-Stand:</font>
</td>
<td valign="middle">
<input type="text" name="1Km-Stand" size="10">
</td>
<td valign="middle">
</td>
</tr>
<tr>
<td valign="middle">
<font color="#FF0000" face="Comic Sans MS">Nummerplaat:</font>
</td>
<td valign="middle">
<input type="text" name="1Nr-plaat" size="10">
</td>
<td valign="middle">
</td>
</tr>
<tr>
<td valign="middle">
<font color="#FF0000" face="Comic Sans MS">Lidgeld Betaald:</font>
</td>
<td valign="middle">
<select name="1Lidgeld">
<option value="--Kies--" selected>--Kies--</option>
<option value="Ja">Ja</option>
<option value="Nee">Nee</option>
</select>
</td>
<td valign="middle">
</td>
</tr>
</table>
<font color="#CCCCCC" face="Comic Sans MS" size="2">Betaling van het lidgeld (20€) via overschrijving op het FJRijders-rekeningnummer: ***-*******-** met vermelding van je "Nickname - betaling Lidmaatschap FJRijders 2008"</font><br><br>
<input type="submit" value=" Verzenden "> <input type=reset value=" Invoer Wissen ">
</form>
</body>
</html>
<!-- Einde formulier -->
<? } ?>