captcha in php bestaand script.

Status
Niet open voor verdere reacties.

Hondavfr91

Nieuwe gebruiker
Lid geworden
14 nov 2010
Berichten
3
Hallo mensen, ik heb een vraagje,

wie kan mij helpen om spam tegen te gaan in mijn gastenboek, ik word er echt helemaal gek van.

Zelf heb ik niet zoveel verstand van php, meer van html, en heb er best een tijd over gedaan om deze gastenboek werkend tekrijgen,maar nu, die spam word moelijker.

Ik heb voor mijn gastenboek 3 scripts, View, verwerk en reactie.. welke moet ik nu aanpassen en wat moet ik aanpassen?

dit zijn de codes:

View:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<img alt="GASTEN (89K)" src="GASTEN.gif" height="150" width="1200" />
<head>
<style TYPE="text/css">
<!--
A:link {color:"#3366ff";}
A:visited {color:"3366ff";}
A:hover {text-decoration: underline; color:"ffffff";}
A{text-decoration:none}
-->
</style>
<title>GASTENBOEK</title>
</head>
<body background="GASTEN02.gif">

<td><i><a href="HOME.html"><small>HOME</small></a></i>
<br>

<i><b><font size="4" color="#000080"><b><p align="center"><b> Gastenboek Reacties: </b></p>
<hr>
<p align="center"><?php include("reacties.txt"); ?></p>
<hr>
<i><b><font size="3" color="#ff0000"><b><p align="center"><b> Plaats hier een reactie in het gastenboek:</p>
<form name="form1" method="post" action="verwerk.php">
<p align="center">
Naam: <input name="Naam" type="text" value""></p>
<p align="center">
E-mail: <input name="Email" type="text" value=""></p>

<p align="center">Bericht:</p>
<p align="center"><textarea name="bericht" rows="7" cols="45"></textarea></p>
<p align="center"><input type="submit" name="Submit" value="Verzenden">
</p>
</form>

</html>


Verwerk:

<?php
$Naam = $_POST[Naam];
$Email = $_POST;
$url = $_POST[url];
$Bericht = $_POST[bericht];

$data = "reacties.txt";
$file = fopen($data, "a");
$tijd = time();
$datum = strftime("%d-%m-%y %H:%M", $tijd);

fputs($file, "<br> <h5>Geschreven door: <a href=\"mailto:$Email\">$Naam</a> - Tijd: <i>$datum</i> <br> <hr>
<h5>Bericht:</h5> <i>$Bericht</i><br><br><hr>");
fclose($file);
?>


<?php include("view.php"); ?>
[/COLOR]

en reactie:

[COLOR="deepskyblue"]<i><font size="2" color="#ff0000">
<ol>
Geschreven door: ruud - Tijd: 11-07-10 12:17
<br>
Bericht:
<br>
Welkom in mijn gastenboek! Ik hoop dat je genoten hebt van mijn site dus laat vooral een leuk berichtje achter!! Gr Ruud
<br><i><font size="2" color="#000080"><ol>[/COLOR]



Alvast bedankt!!

Gr Ruud
 
Hier is een hele makkelijke oplossing waarmee je 99% van alle spam tegenhoudt:

* Voeg een extra invoer veld toe aan je pagina:
HTML:
<input class="extra_info" type="text" name="info" value="" />
* Gebruik CSS display: none om het te verbergen
Code:
.extra_info {
  display: none
}
* Zet bovenaan je pagina een extra if:
PHP:
if ( isset( $_POST['info'] ) && $_POST['info'] !== "" ) {
  die();
}

Je krijgt dan een veld wat gebruikers niet kunnen zien, maar spambots wel, en als je het veld invult wordt je reactie automatisch genegeerd.
 
Aaaah, de honingpot :D

Je kunt het ook nog combineren met een timestamp beveiliging. Bots kunnen formulieren razend snel invullen, mensen niet:

PHP:
<input type="hidden" name="secure" value=<?php echo time(); ?>" />

En dan bij verwerken:

PHP:
<?php

// aantal seconden die de gebruiker minimaal moet wachten
$seconden = 3;

$timestamp = time() + $seconden;
$post = $_POST['secure'];

if(empty($post) || !is_numeric($post) || $timestamp <= $post) {
   echo 'Je reageert veel te snel voor een mens!';
   die();
}
?>
 
bedankt voor het reageren, maar frats.. waar moet ik deze codes invoeren?

ik heb het net even geprobeerd (gewoon boven aan de pagina '' view'' ingevuld) maar dan doet ie niets.

Gr Ruud
 
De extra input moet onder deze regel:
Code:
<form name="form1" method="post" action="verwerk.php">

De CSS regel moet hieronder:
Code:
<style TYPE="text/css">
<!--

En dat andere stukje moet in verwerk hieronder:
Code:
<?php

En dan zou het moeten werken.
 
Ik heb gedaan zoals je zei Frats, en als ik het goed begrijp merk je er in principe niets van, alles blijft gewoon werken zoals dat al deed, je hebt er alleen iets tussen gevoegd.

Ik heb het een uur geleden toegepast en heb tot opheden nog geen spam, meestal zat er binnen 5 min al een hele wastlijst aan spam, dus ik neem aan dat het werkt!!

Bedankt voor de hulp!

Gr Ruud
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan