spam regel in contact form!
Ik ben nog niet zo lang bezig met PHP, maar nu toch weer een klein probleempje.
Ik krijg spam binnen via het contact formulier.
Weet iemand een codering om spam tegen te gaan die ik in de php kan zetten?
Bijvoorbeeld zo'n controlevraag als "typ getal 19 in letters?"
Ik heb ernaar gezocht, maar veel coderingen herken ik nog niet goed!
Alvast bedankt!
mvg, Xander
Hieronder staat mijn huidige codering:
Codering in contact.html
<form method="POST" action="sendmail.php">
Uw naam: <BR><input name="Naam" type="text" size="40"><br /><BR>
Uw e-mail adres: <BR><input name="E-mail" type="text" size="40"><br /><BR>
Bericht: <BR><textarea name="Bericht" cols="40" rows="4"></textarea><P>
<input type="submit" VALUE="Verstuur">
</form>
Codering in sendmail.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$to = "[email protected]"; // De e-mail zal naar dit adres worden verstuurd
$subject = 'Onderwerp'; // Het onderwerp van de e-mail
$from = '[email protected]'; // De afzender van de e-mail
$url = 'bedankt.html'; // Na het versturen van het formulier wordt de
// bezoeker naar deze URL doorgestuurd
$message = 'Formulier van de website\n';
$message = '------------------------\n';
foreach ($_POST as $key => $val)
{
$message .= "$key = $val\n";
}
mail($to, $subject, $message, "From: $from");
header("Location: $url");
?>
$to = "[email protected]"; // De e-mail zal naar dit adres worden verstuurd
$subject = 'Onderwerp'; // Het onderwerp van de e-mail
$from = '[email protected]'; // De afzender van de e-mail
$url = 'bedankt.html'; // Na het versturen van het formulier wordt de
// bezoeker naar deze URL doorgestuurd
$message = 'Formulier van de website\n';
$message = '------------------------\n';
foreach ($_POST as $key => $val)
{
$message .= "$key = $val\n";
}
mail($to, $subject, $message, "From: $from");
header("Location: $url");
?>
Er staat dan: Vul het getal achttien in:
Dit moet je dan intypen
Als je dit wel wilt, je kan een array aanmaken:
$array[1] = "Eén"
$array[2] = "Twee"
Dan kan je met simpel rekenwerk wel wat brouwen....
Dat is wel effectiever! Je moet het dan wel geregeld es aanpassen, denk ik!
Hoe kan ik dit in mijn sendmail.php verwerken?
Of gewoon meerdere vragen/andwoorden maken dat je elke keer een random vraagt krijgt.
Probeer maar eens vragen te bedenken waarop iedereen het zelfde antwoord geeft.
Zorg dat sowieso de antwoorden kort zijn; niet letten op hoofdletters; antwoorden zonder speciale tekens; best antwoorden in 1 woord...
Zie dat bv. een Nederlander en een Vlaming het zelfde antwoord zou geven. Dat kan wel eens verrassen.
Code (php)
Zoals je ziet heb zet ik de rand in een sessie zodat de andere pagina hem blijft onthouden. (Voorkomt een postregeltje extra)
Op de volgende pagina controleer je dat dan aan de hand van de opgeslagen sessie
Je weet dat botjes gegeven plain text direct kunnen gebruiken? Ik geef deze beveiliging weinig kans...