Hallo, ik heb nu een vrij basic gastenboek script maar die wil ik beschermen tegen spam, hoe kan ik dit het beste doen? ik heb nu zoeizo het script zo dat je EN een gebruikersnaam EN een bericht MOET invullen anders gebeurt er niks en krijg je het zelfde venster weer (met een melding er boven en de dingen die je niet vergeten was wel weer ingevuld).

maar hoe kan ik mijn variabele $bericht controleren op inhoud voordat ik het in de database gooi?

Spam is de laatste tijd moeilijk tegen te houden. Je zou kunnen checken op specifieke woorden en/of een CAPTCHA gebruiken.
ok, en hoe moet dit enzo? het liefst heb ik een bestand spamfilter.txt ofzo waar ik de spam woorden in zet, en als een van de woorden uit dat bestand in het bericht zit moet ie het bericht niet plaatsen.

EDIT:

het moet aan de andere kant wel weer makkelijk te beheren zijn, misschien toch maar via een DB
Ik denk dat je met een maximum van 3 url's per bericht limitatie al de helft eruit haalt...
Verder idd CAPTCHA etc.
ok, maar hoe doe ik dat, ik heb geen idee wat het is en hoe ik het toe pas
Nico V. schreef op 23.06.2007 19:14
Hallo, ik heb nu een vrij basic gastenboek script maar die wil ik beschermen tegen spam, hoe kan ik dit het beste doen? ik heb nu zoeizo het script zo dat je EN een gebruikersnaam EN een bericht MOET invullen anders gebeurt er niks en krijg je het zelfde venster weer (met een melding er boven en de dingen die je niet vergeten was wel weer ingevuld).

maar hoe kan ik mijn variabele $bericht controleren op inhoud voordat ik het in de database gooi?

Rewactie's in het gastenboek worden op mijn site niet direct getoond, maar pas na goedkeuring. Dit werkt wat mij betreft goed.
ok, maar ik moet dus eerst voor elkaar krijgen dat er gecheckt word of een reactie goed is of fout, ik wou dit idd doen door te checken met woorden of iddd links ofzo, zou het handig zijn om een tabel met woorden aan te maken en daar op te checken?

misschien een query met dat woord, en als het resultaat hoger dan 1 is, error geven van mag niet enzo
je kunt bijv een som geven:

v1er + v1jf = [textveld] dat de gebruiker hier het antwoord moet geven.
Bericht checken op niet meer dan twee url's
<?
if (substr_count($bericht ,"http://") > 2)
{
echo "fout";
}else{
echo "goed";
}
?>
he ceasar, dat kan je natuurlijk ook aanvullen door $bericht, $woord_array) te maken of kan dat niet.

kijk dan haal je de woorden uit je DB, zet je de woorden in een array, en check je ze
Tuurlijk kan dat.
Makkelijker is toch een captcha ( met plaatje of cijfers bv. )

Wil jezelf op een makkelijke manier beschermen dan is een hidden veld waarin je een email adres opvraagt meestal voldoende

vb
<?
<span class="hideword"><br />NB ! Deze niet invullen !!( is alleen tegen spam bedoeld ). Vul uw email adres in bij 'uw email adres'
<input name="emailadress" type="text" size="22" class="input" value="" /></span>
?>

<?
in css
.hideword {
display: none;
}
?>

in php
<?
$emailadress = $_REQUEST['emailadress'];
if($emailadress != "")
{

echo "wegwezen !";
return;
}else{
echo "versturen";
}
?>

Reageren