hfoppen
Terugkerende gebruiker
- Lid geworden
- 15 nov 2000
- Berichten
- 1.058
Beste mensen,
i.v.m. de vele hoeveelheid SPAM wil ik mijn huidige gastenboek (al tijdje geleden gemaakt
) beveiligen. Dit lukt echter niet!!!
captcha.php
ind_gboek.php
Ik stuit tegen 2 problemen:
1) De captcha is te groot en kan dus niet goed worden gelezen
2) De controle of code juist is overgenomen gat niet goed
i.v.m. de vele hoeveelheid SPAM wil ik mijn huidige gastenboek (al tijdje geleden gemaakt

captcha.php
PHP:
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
$im = imagecreatetruecolor(100, 38);
// Kleurenbepaling
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts
imagefilledrectangle($im, 0, 0, 200, 35, $black);
// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';
// schaduw toevoegen
imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);
// randomnr. toevoegen
imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);
// voorkomen dat afbeelding ge-cached wordt
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// plaatje verzenden naar browser
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
ind_gboek.php
PHP:
<?php
session_start();
ob_start();
?>
<html>
<head>
<title> ..:: Roemeniereis 2009 - Gastenboek ::..</title>
</title>
<body>
<?php
include("inc/connection.inc.php");
?>
<base target="_self">
<style type="text/css">
<!--
body,td,th {
color: #CC0033;
font-family: Tahoma;
}
body {
background-color: #66CCFF;
}
-->
</style><body style="background-color: #66CCFF">
<?php
$message = '';
$_GET = $HTTP_GET_VARS;
$_POST = $HTTP_POST_VARS;
if (array_key_exists('name', $_POST) && array_key_exists('message', $_POST)) {
// save the message :-)
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
if (md5($norobot) == $_SESSION['randomnr2']) {
$fout .= "U heeft de code incorrect over getypt! <BR>";
unset($norobot);
$fout_vakje_norobot = "input_fout";
$fout_text_norobot = "text_fout";
}
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
$sql = 'INSERT INTO gastenboek(name,message,IP_address,time) VALUES (\''.$_POST['name'].'\', \''.nl2br(htmlspecialchars($_POST['message'])).'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.date('Y-m-d H:i:s').'\')';
$query = mysql_query($sql); // update
} //toegevoegd 30/07
if (mysql_errno() == 0) {
// no error :)
$message = 'Uw bericht is opgeslagen!';
} else {
// error :(
echo 'helaas, er is een fout opgetreden: <br><br>'.mysql_error().'<br><br>Ik ben hier niet van op de hoogte, dus stuur me even een mailtje en kopieer de foutmelding even: <a href="herbert@foppen.nu?subject=foutmelding">herbert@foppen.nu</a>.';
exit;
}
}
echo '<html>
<link rel="stylesheet" href="stylesheet.css">
<head>
<title> ..:: Roemeniereis 2009 - Gastenboek ::..</title>
</head>
<body style="background-color: #FBFFDF">
';
if ($message != '') {
echo '<b>'.$message.'</b><br><br>';
}
echo '
<br><br>
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr><td height="100" width="100%" class="code" valign="top">
<b>Hier dan het gastenboek. Laat even een berichtje achter, en lees wat anderen al eerder hebben achtergelaten.<P>
<br>
Let op: er word informatie bewaard waarmee jou computer te herkennen is,
dit om te voorkomen dat mensen vervelend gaan doen op dit gastenboek (nu
kan de toegang geweigerd worden). Deze informatie word niet verkocht aan
derden!!
<P>
<form method="post" action="ind_gboek.php">
<table width="100%" height="196" cellpadding="5" cellspacing="0" border="0">
<tr>
<td width="1%">Naam:</td>
<td><input type="text" name="name" class="text" maxlength="25" size="20"></td>
</tr>
<tr>
<td width="1%">Berichtje:</td>
<td><textarea name="message" cols="75" rows="10"></textarea></td>
</tr>
<tr>
<td width=1%">Code:</td>
<td><input class="input" type="text" name="norobot"></td>
<td><img src="captcha.php"></td>
</tr>
</table>
<input type="submit" class="button" value="Verstuur">
</form>
<P class="header">Berichtjes:</P>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr><td align="center">
';
// display messages
$sql = 'SELECT * FROM gastenboek ORDER BY time DESC';
$result = mysql_query($sql);
if (mysql_errno() != 0) {
echo mysql_error();
exit;
}
while ($row = mysql_fetch_array($result)) {
echo '<table width="90%" cellpadding="2" cellspacing="0" border="0" class="message">
<tr><td class="left"><b>'.$row['name'].'</b></td><td width="1%" NOWRAP class="right"><b>'.$row['time'].'</b></td></tr>
<tr><td colspan="2">'.$row['message'].'</td></tr>
</table><br>';
}
?>
</td></tr>
</table>
</td></tr>
</table>
</body>
</html>
Ik stuit tegen 2 problemen:
1) De captcha is te groot en kan dus niet goed worden gelezen
2) De controle of code juist is overgenomen gat niet goed