Anti-Spam validatie nodig voor gastenboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maes Timmy

Maes Timmy

04/08/2010 12:58:01
Quote Anchor link
Hey,

Ik heb een gastenboek script maar het probleem is dat ik er enorm veel spam op ontvang, nu zou ik dit willen oplossen door een anti-spam code ofzo, maar hoe moet ik dit dan aanpassen in mijn script? Hopelijk wil er iemand mij helpen? Reeds dank!

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? ob_start();
include "connect.php";
include "ubb.php";
//antiflood
function flood(){
    $time = 20;
    if(!isset($_COOKIE["floodvh"])){
        setcookie("floodvh",time()+$time,time()+$time, "/");
    }

    elseif($_COOKIE["floodvh"] >= time()){
        exit("<table><tr><td><b>Je moet nog even wachten voor je je volgende bericht kunt plaatsen!</b><br><a href='javascript:window.history.go(-1)'>Klik hier om terug te keren</a></td></tr></table>");
    }
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.: DJ Guniii - Gastenboek :.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Page-Enter" content="blendTrans(Duration=1)">
<meta name="robots" content="all">
<meta name="distribution" content="Global">
<meta name="rating" content="General">
<meta name="copyright" content="Copyright &copy; 2010 - T-Bounce.com">
<meta name="author" content="T-Bounce.com">
<meta name="language" content="en,nl">
<meta name="ressource-type" content="document">
<meta name="revisit-after" content="9 days">
<meta name="description" content="DJ Guniii">
<meta name="keywords" content="DJ Guniii Official Website">
<link rel="stylesheet" type="text/css" href="css/content.css" media="screen" />
<link rel="stylesheet" type="text/css" media="all" href="css/jScrollPane.css" />
<script type="text/javascript" src="scripts/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="scripts/jquery.mousewheel.js"></script>
<script type="text/javascript" src="scripts/jScrollPane.js"></script>
<!--script type="text/javascript" src="../dist/jScrollPane.min.js"></script-->
<script type="text/javascript">

$(function()
{
// this initialises the demo scollpanes on the page.
$('#pane1').jScrollPane();
$('#pane2').jScrollPane({showArrows:true});
$('#pane3, #pane4').jScrollPane({scrollbarWidth:20, scrollbarMargin:10});

// this allows you to click a link to add content to #pane4 and shows how to
// reinitialise the scrollbars when you have done this.
$('#add-content').bind(
'click',
function()
{
$('#pane4').append($('<p></p>').html($('#intro').html())).jScrollPane({scrollbarWidth:20, scrollbarMargin:10});
}
);
// and this allows you to click the link to reduce the amount of content in
// #pane4 and reinitialise the scrollbars.
$('#remove-content').bind(
'click',
function()
{
$('#pane4').empty().append($('<p></p>').html($('#intro').html())).jScrollPane({scrollbarWidth:20, scrollbarMargin:10});
}
);
});

</script>
</head>
<body>
<div id="pane1" class="scroll-pane">
<p><strong>DJ Guniii Gastenboek</strong><br />
<img src="images/contentline.png" alt="contentline" width="342" height="2" /></p>
<center>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<? if ($_POST['submit']) {
if ($_POST['naam']!="" AND $_POST['bericht']!="" AND $_POST['email']!="") {
flood();
$insert = "INSERT INTO gastenboek (id,naam,email,homepage,bericht,datum, ip) VALUES ('','".$_POST[naam]."','".$_POST[email]."','".$_POST[homepage]."','".$_POST[bericht]."','".date('Y-m-d H:i:s')."','".$REMOTE_ADDR."')";
mysql_query($insert) or die(mysql_error());
echo "<script>location.href='$PHP_SELF'</script>"; }
else { echo"<table><tr><td><b>U bent vergeten iets in te vullen.</b><br><a href='javascript:window.history.go(-1)'>Klik hier om terug te keren</a></td></tr></table>";}}

else { ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$sql
= "SELECT * FROM gastenboek ORDER BY datum DESC";
$resultaat = mysql_query($sql) or die ("query mislukt");
while ($rij = mysql_fetch_object($resultaat)){
$naam = htmlspecialchars($rij->naam);
$email = htmlspecialchars($rij->email);
$homepage = htmlspecialchars($rij->homepage);
$bericht = htmlspecialchars($rij->bericht);
set_smilies($bericht);
echo "<table><tr><td width=150 valign=top><a href=mailto:".$email."><b>".$naam."</b></a><br><font size=1>";
    if ($homepage=="" OR $homepage=="http://") {} else {
    echo "<a href=\"".$homepage."\" target=\"_blank\">website</a>"; }
echo"</font></td><td width=250 valign=top>".$bericht."</td></tr></table><br> ";} ?>


<table width="340" border="0">
<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo "$PHP_SELF"; ?>
" name="gastenboek">
<tr>
<td><b><font color="#666666">Bericht toevoegen</font></b></td>
</tr>
<tr><td width="150"><div align="right">Naam:</div></td><td width="250"><input type="text" name="naam" size="40"></td></tr>
<tr><td width="150"><div align="right">Email:</div></td><td width="250"><input type="text" name="email" size="40"></td></tr>
<tr><td width="150"><div align="right">Homepage:</div></td><td width="250"><input type="text" name="homepage" size="40" value="http://"></td></tr>
<tr><td valign="top"><div align="right">Bericht:</div></td><td><textarea name="bericht" cols="40" rows="5"></textarea>
<br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? show_ubb(); ?>
</td></tr>
<tr><td></td><td><input type="submit" name="submit" value="verzenden"></td></tr>
</form>
</table>
<br><a href="admin.php">ADMIN</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? } ?>

</center>
</div>
</body>
</html>
 
PHP hulp

PHP hulp

08/11/2024 22:52:45
 
Dalando De Zuil

Dalando De Zuil

04/08/2010 13:10:42
Quote Anchor link
Zet even je hele code tussen [.code.] [./code.] tags. zonder de puntjes.
 
John D

John D

04/08/2010 14:03:58
Quote Anchor link
Ik zou de tijd variabele niet in een cookie zetten maar in een session var. Een spammer kan cookies ontwijken. Ikzelf gebruik een andere methode om spam tegen te gaan en dat werkt perfect. Mijn website is een NL website en ik weiger dus gewoon ipnummers buiten NL te schrijven op mijn gastenboek en na inbouwen geen spam meer!! Ik geef geen foutmelding af maar heb de daadwerkelijke actie binnen een if. Check deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$d
= file_get_contents("http://www.ipinfodb.com/ip_query.php?ip=$ip&output=xml&timezone=false");
?>

meer info en examples op de genoemde website.
Gewijzigd op 04/08/2010 14:06:32 door John D
 
Niek s

niek s

04/08/2010 14:56:12
Quote Anchor link
Klik
Bijvoorbeeld:
Re-Captcha.
 
John D

John D

04/08/2010 14:59:14
Quote Anchor link
Niek s op 04/08/2010 14:56:12:
Klik
Bijvoorbeeld:
Re-Captcha.

reCaptcha is een service waarvan je gebruik kan maken. Deze service kan offline zijn....
Verder vind ik reCaptcha nogal lelijk en te dominant. Ik heb hem wel even gebruikt als test en het werkt goed.
Gewijzigd op 04/08/2010 15:00:25 door John D
 
Niek s

niek s

04/08/2010 15:30:22
Quote Anchor link
John D op 04/08/2010 14:59:14:
Niek s op 04/08/2010 14:56:12:
Klik
Bijvoorbeeld:
Re-Captcha.

reCaptcha is een service waarvan je gebruik kan maken. Deze service kan offline zijn....
Verder vind ik reCaptcha nogal lelijk en te dominant. Ik heb hem wel even gebruikt als test en het werkt goed.


Je eigen webserver kan ook plat gaan. Alles kan.
Je kan reCaptcha gewoon stylen, dus dat is ook geen reden om het niet te gebruiken
 
Crude Oil

Crude Oil

04/08/2010 17:15:42
Quote Anchor link
Je kunt bijvoorbeeld de gebruiker een random rekensom opgeven. Ik doe dat dan emestal in letters. Bijvoorbeeld: Bereken: drie plus een ofzow, een som die iedereen kan oplossen (behalve de spambots)
 
Paco oste

Paco oste

06/08/2010 04:02:58
Quote Anchor link
Ik heb een voorstel, laat een cookie formmuliertje er extra in.
bv van;
Cookie tijd 30Seconde
Als die tijd niet voorbij is komt erop; Geduld, je vorige reactie word nog verwerkt.
en als niet zo is laat je de Ingetypte text lade, ik ga hier geen code van geven.
Want ik will je alleen maar een voorstel geven ;)
 
John D

John D

06/08/2010 10:21:35
Quote Anchor link
je kan cookies omzeilen, lijkt me dus niet het meest ideale voorstel.
 
Johan Dam

Johan Dam

06/08/2010 13:36:09
Quote Anchor link
Captcha is vaak lelijk en niet vriendelijk voor alle gebruikers.

Persoonlijk maak ik van gebruik van een of meerdere hidden submit knoppen (of andere input velden) beide submit knoppen krijgen een random naam en ook de volgorde is random. De 'foute' submit knoppen worden hidden gemaakt door een met php gegenereerde css (bots controleren geen css bestanden)

Gebruikers klikken altijd de zichtbare, bots worden (tot nu toe) goed tegen gehouden,

Als iemand speciaal voor die website een bot wil maken, dan zal de dit niet goed genoeg zijn,

Handig is om zodra er een hidden submit verzonden word, het IP gebanned geblokt word, maar je kan dan ook een captcha weergeven voor het geval dat, bij wijze van 2e kans.

Captcha is bedoeld als last-resort, niet om zomaar rond te gooien zoals nu veel gebeurd.

Als ik voor een simpel berichtje een captcha moet invullen, of een simpele rekensom moet oplossen, dan klik ik weg. Misschien dat ik daarin uniek ben maar dat betwijfel ik.

Ga eerst maar naar andere anti-bot oplossingen zoeken, en gebruik captcha alleen als je al vermoed dat een gebruiker een bot is. (omdat hij een hidden input veld heeft ingevuld, of nooit een afbeelding / css / javascript van je website heeft geladen)

IP opslaan bij berichten is ook handig, komt er een bot door? Dan blok je hem.

Ook zijn er lijsten met IP adressen van bekende bots, die kan je ook raadplegen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.