Scripts
Beveiliging van gastenboek
Een beveiliging van een gastenboek doormiddel van een code die men moet invoeren. Plaatje wordt aangemaakt door de DB en is steeds anders. Maak een map genaamd "fonts" in dezelfde DIR en voeg daarin toe een font naar keuze en rename deze naar jekeuze.ttf Bouw onderstaande stukjes script in, in je gastenboek. Commentaar welkom en voor nader uitleg help ik je graag. ( Vind het moelijk uit te leggen hoe alles moet) Rieksie
beveiliging-van-gastenboek
//////////////////Image.php//////////////////////
<?php
header("Content-Type: image/jpeg");
# CONNECT MET DB
$host = "localhost";
$user = "je naam";
$pass = "Wachtwoord";
$name = "DB";
mysql_connect($host, $user, $pass);
mysql_select_db($name);
function generate($length)
{
$c = "abcdefghijklmnopqrstuvqxyz0123456789";
$code = "";
for ($i = 0; $i < $length; $i++)
{
$char = $c{rand(0, strlen($c) - 1)};
if (rand(0,1) == 1) $char = strtoupper($char);
$code .= $char;
}
// verwijder oudere codes van deze bezoeker.
mysql_query("DELETE FROM `gastenboekcodes` WHERE `ipadres` = '{$_SERVER['REMOTE_ADDR']}';");
// code controleren.
mysql_query("INSERT INTO `gastenboekcodes` SET `code` = '$code', `ipadres` = '{$_SERVER['REMOTE_ADDR']}';");
return $code;
}
function tekencode($code)
{
$width = strlen($code) * 20;
$image = imagecreatetruecolor($width, 26);
// Maak een kleuren pallet. RGB
$achtergrond = imagecolorallocate($image, 151, 156, 250);
$lijn = imagecolorallocate($image, 210, 210, 210);
$tekst = imagecolorallocate($image, 0, 0, 0);
// Stel de achtergrond kleur in.
imagefill($image, 0, 0, $achtergrond);
$y = 0; $x = 0;
$length = 0;
for ($i = 0; $i < 10; $i ++)
{
$y += rand(1, 4);
$x = rand(0, 0);
$length = rand($width - 10, $width);
imageline($image, 0, $y, strlen($code) * 20, $y + rand(-5, 5), $lijn);
}
// Een loopje door elke karakter in de string.
$x = 5; $y = 0;
for ($i = 0; $i < strlen($code); $i++)
{
$char = substr($code, $i, 1);
$y = rand(16, 23);
// Voeg het karakter toe aan het plaatje.
$tx = rand($x - 3, $x + 3);
imagettftext($image, 10, rand(-12, 12), $tx, $y, $tekst, "fonts/comic.ttf", $char);
$x += 20;
}
imagerectangle($image, 0, 0, $width - 1, 25, imagecolorallocate($image, 0, 0, 0));
imagejpeg($image, null, 100);
}
// de afbeelding weergeven.
$code = generate(6);
tekencode($code);
?>
//////////////////einde image.php/////////////
/////////////////Check code//////////////
Bouw onderstaande code in, in het gedeelte van het schrijven van een bericht
<?php
// controleren of iemand de juiste code heeft ingevoerd
if(check_code($_POST[code]) == false)
{
//echo "U heeft een onjuiste code ingevoerd. U keert terug...";
//echo "<meta http-equiv=\"refresh\" content=\"4; URL=javascript:history.back()\">";
// Error message weergeven
echo show_error_message("U heeft een onjuiste code ingevoerd... Probeer het nog eens!");
// Bericht toevoegen form weergeven
echo show_add_form($aantalkpb,$smilies,$ubbcode);
exit();
}
?>
/////////////////einde check code////////////
////////////////Het formulier///////////
Bouw deze code in het formulier van je gastenboek
<?php
<img src='image.php'><br><br><input type='text' size='6' name='code'>
Type de code na ter beveiliging van het gastenboek
?>
//////////////einde het formulier////////////
///////////////Sql////////////////
<?php
--
-- Tabel structuur voor tabel `gastenboekcodes`
--
CREATE TABLE `gastenboekcodes` (
`codeid` int(7) NOT NULL auto_increment,
`code` varchar(10) NOT NULL default '',
`ipadres` varchar(25) NOT NULL default '',
PRIMARY KEY (`codeid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=94 ;
?>
/////////////einde Sql///////////
Reacties
0