Bestaat er een script dat ervoor zorgt dat als iemand iets in het gastenboek schrijft zijn e-mailadres moet opgeven, waarna een bevestigingslink gemaild wordt", waardoor het bericht pas geplaatst wordt na geklikt te hebben op de link in de vertuurde mail...??
Vast wel, maar het nut ontgaat me even, wat (denk ik tenminste) hetzelfde doel heeft, is of een captcha plaatje, of een vraag stellen..
Door deze maatregel zullen er minder 'nodeloze' berichten geplaatst worden daar ze hun mailadres op moeten geven en geen fake adres...
Lijkt me onnodig daar er weinig in het gastenboek geschreven wordt, de site is niet zo druk bezocht als deze ;-)

Zo'n CaptCha plaatje is volgens mij afdoende. Een e-mailadres opgeven als je een gastenboek wilt tekenen gaat mijns inziens te ver. E-mailadressen moet je niet zomaar afgeven/invullen. Dat is alleen interessant voor spammers.
Ja. Als je gastenboek spam wil voorkomen, kan je beter met IP adressen werken, en met bijvoorbeeld een IMAGE plaatje, of gewoon een vraag zoals: Wat is de hoofdstad van Nederland. (Arjan ;)).

Dan moet je natuurlijk wel hopen dat iedereen zijn basisschool goed heeft gevolgd en weet dat het antwoord Amsterdam is.

Je kan dit ook dmv een databaseje doen. X aantal vragen met antwoorden, en controleren of antwoord overeenkomt met vraag uit de db.
Das ook een idee ja, ik ga daar eens over nadenken...

Thank joe
Ik gebruik voor mijn gastenboek wel gewoon een emailactivatie. Het is simpeler dan een captcha (hou rekening met het feit dat niet iedereen dat begrijpt/kan gebruiken) en zodoende weet ik zeker dat het emailadres correct is als ik wil reageren.

En als iemand iets in het gastenboek zet maar geen geldig emailadres wil opgeven.. tja, dan zal zijn bericht ook niet zoveel voorstellen..

Misschien kan je hier wat uit gebruiken. Dit heb ik een tijdje geleden op dit forum vrij snel in elkaar geknutseld, in dit geval moet de gebruiker een bericht activeren, maar een beheerder moet het bericht eerst accepteren.

<?php
error_reporting(E_ALL);

//Persoonlijke gegevens.
define("naamwebmaster", "Arjan Kapteijn");
define("emailwebmaster", "[email protected]");
define("locatiebestand", "http://test.i-cey.net/test.php");

//Database gegevens.
$db_host = ''; // je eigen server
$db_user = ''; // je eigen gebruikersnaam
$db_pass = ''; // je eigen password
$db_name = ''; // je eigen database naam

mysql_connect($db_host, $db_user, $db_pass) or die('Er kon geen verbinding met de server worden gemaakt.');
mysql_select_db($db_name) or die('Ik kon de juiste database niet vinden.');

//Functie om random nummers te genereren.
function randomgenerator($aantaltekens)
{
//Eerst maken we 3 arrays met gegevens.
$kleineletters = range('a','z');
$groteletters = range('A','Z');
$cijfers = range(0,9);

//Prop ze bij elkaar en tel ze.
$karakters = array_merge($kleineletters, $groteletters, $cijfers);
$aantal = count($karakters)-1;
$random = null;

//Voor ieder teken dat we willen maken pakken we een random nummertje.
for($i=0; $i < $aantaltekens; $i++) {
$random .= $karakters[mt_rand(0, $aantal)];
}
return $random;
}

//Datum omzetten in iets netters.
function datumomzetten($datum)
{
//We trekken eerst de datum uit elkaar.
$datumarray = explode(" ", $datum);
$dag = $datumarray[0];
$maand = $datumarray[1];
$jaar = $datumarray[2];

$maand_array = array("januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december");
//Halen de juiste maand uit de maandenarray.
$maand = $maand_array[$maand - 1];
//Vormen een nieuwe datum en stuur die terug!
$datum = "$dag $maand $jaar";
return $datum;
}

//Versturen van een emailtje
function emailsturen($email, $bericht)
{
$titel = 'Activatie Registratie';

$headers = 'MIME-Version: 1.0'. "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1'. "\r\n";
$headers .= 'X-Priority: 3'. "\r\n";
$headers .= 'X-MSMail-Priority: Normal'. "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion().''."\r\n";
$headers .= 'From: '.naamwebmaster.' <'.emailwebmaster.'>'."\r\n";

$verstuur = mail($email, $titel, $bericht, $headers);

if($verstuur)
{
return TRUE;
}else{
return FALSE;
}
}

//De gebruiker moet zijn eigen account activeren
function activeren($email,$activatiecode)
{
$activatiecode = mysql_real_escape_string($activatiecode);
$email = mysql_real_escape_string($email);
$wachtwoord = randomgenerator(8);

$query = "UPDATE gebruikerstabel SET geactiveerd = 'Y', activatiecode = '', wachtwoord = '".sha1($wachtwoord)."' WHERE email = '".$email."' AND activatiecode = '".$activatiecode."' AND geaccepteerd = 'Y'";
$resultaat = mysql_query($query);

if (mysql_affected_rows() == 1)
{
$bericht = "Beste, \r\n \r\nUw account is geactiveerd! U kunt nu inloggen met het volgende wachtwoord:\r\n \r\n".$wachtwoord.".";

$verstuur = emailsturen($email,$bericht);

if($verstuur)
{
echo 'U heeft zojuist uw account succesvol geactiveerd! Uw wachtwoord word naar u toegezonden.';
}
}else{
echo 'Sorry, er gaat iets mis!';

}
}

//Jij als beheerder moet een account eerst accepteren
function accepteren($email,$activatiecode)
{
$activatiecode = mysql_real_escape_string($activatiecode);
$email = mysql_real_escape_string($email);
$activatiecode2 = sha1(randomgenerator(10));

$query = "UPDATE gebruikerstabel SET geaccepteerd = 'Y', activatiecode = '".$activatiecode2."' WHERE email = '".$email."' AND activatiecode = '".$activatiecode."' AND geaccepteerd = 'N'";
$resultaat = mysql_query($query);

if (mysql_affected_rows() == 1)
{
$bericht = "Beste, \r\n \r\nUw account is geaccepteerd!\r\n \r\nDoor de onderstaande link te volgen kunt uwzelf activeren: \r\n \r\n".locatiebestand."?actie=activeren&amp;email=".$email."&amp;activatiecode=".$activatiecode2."";

$verstuur = emailsturen($email,$bericht);

if($verstuur)
{
echo 'U heeft zojuist de account succesvol geaccepteerd!';
}
}else{
echo 'Sorry, er gaat iets mis!';
}
}

if($_SERVER['REQUEST_METHOD'] == "POST")
{
if((!empty($_POST['txtnaam'])) && (!empty($_POST['txtemail'])))
{
$naam = mysql_real_escape_string($_POST['txtnaam']);
$email = mysql_real_escape_string($_POST['txtemail']);
$datum = datumomzetten(date("d m Y"));

$activatiecode = sha1(randomgenerator(10));

$query = "INSERT INTO gebruikerstabel (naam, email, activatiecode) VALUES ('".$naam."', '".$email."', '".$activatiecode."')";
$resultaat = mysql_query($query);

if($resultaat)
{
$bericht = "Beste ".naamwebmaster.", \r\n \r\nOp ".$datum." heeft op jou website ".$naam." (".$email.") zich geregistreerd.\r\n \r\nDoor de onderstaande link te volgen kunt u deze persoon activeren: \r\n \r\n".locatiebestand."?actie=accepteren&amp;email=".$email."&amp;activatiecode=".$activatiecode."";

$verstuur = emailsturen(emailwebmaster,$bericht);

if($verstuur)
{
echo 'Uw account is geregistreerd maar nog niet geactiveerd door de beheerder. Nadat de beheerder uw account geactiveerd heeft krijgt u een emailtje waarin u uw account kunt activeren.';
}
}else{
echo 'Sorry, er gaat hier iets mis!';
echo $query;
}
}else{
echo 'Sorry, ik verwacht wel wat input!';
}
}

if(isset($_GET['actie']))
{
$actie = $_GET['actie'];
$acties = array("activeren","accepteren");
if(in_array($actie, $acties))
{
switch ($actie)
{
case "activeren":
if((isset($_GET['activatiecode'])) && (isset($_GET['email'])))
{
$activatiecode = $_GET['activatiecode'];
$email = $_GET['email'];

activeren($email,$activatiecode);

}else{
echo 'Sorry, maar ik verwacht op ze minst een activatiecode en emailadres!';
}
break;

case "accepteren":
if((isset($_GET['activatiecode'])) && (isset($_GET['email'])))
{
$activatiecode = $_GET['activatiecode'];
$email = $_GET['email'];

accepteren($email,$activatiecode);

}else{
echo 'Sorry, maar ik verwacht op ze minst een activatiecode en emailadres!';
}
break;
}
}else{
echo 'Sorry, dit accepteer ik niet!';
}
}else{
echo '<form method="post" name="formulier" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p><label for="txtnaam">Naam:</label><br><input type="text" title="Vul hier uw naam in." name="txtnaam" size="40"></p>';
echo '<p><label for="txtemail">Email:</label><br><input type="text" title="Vul hier uw naam in." name="txtemail" size="40"></p>';
echo '<p><label title="Verstuur uw bericht."><input type="submit" value="Verstuur" name="verstuur"></p>';
}
?>

Reageren