Guten Tag,
ich habe ein Problem mit meinem Gästebuch. Undzwar wollte ich einen Spamfilter einbauen. Bin bis jetzt gut gefahren. Bis ich gemerkt habe, das den noch Spam-Bots mein Gästebuch beballern.
Dann habe ich es selbst in die Handgenommen und getestet.
Trotz Abfrage kann man im Gästebuch irgend ein Quatsch einfügen bzw nix ausfüllen und er Trägt es ein. Selbst ein feld das "unsichtbar" ist und nicht ausgefüllt werden kann. Fülle ich das Feld aus, falle icha uf die Startseite *Logisch*
Dennoch trägt er den GB ein. Obwohl ich auf die Startseite gefallen bin.
Mein Script
ich habe ein Problem mit meinem Gästebuch. Undzwar wollte ich einen Spamfilter einbauen. Bin bis jetzt gut gefahren. Bis ich gemerkt habe, das den noch Spam-Bots mein Gästebuch beballern.
Dann habe ich es selbst in die Handgenommen und getestet.
Trotz Abfrage kann man im Gästebuch irgend ein Quatsch einfügen bzw nix ausfüllen und er Trägt es ein. Selbst ein feld das "unsichtbar" ist und nicht ausgefüllt werden kann. Fülle ich das Feld aus, falle icha uf die Startseite *Logisch*
Dennoch trägt er den GB ein. Obwohl ich auf die Startseite gefallen bin.
Mein Script
PHP-Code:
<?php
session_start();
require_once("db_con.php");
require_once("gast.func.php");
$zahl1 = rand(1, 9);
$zahl2 = rand(1, 9);
$ergebniss = $zahl1 + $zahl2;
if ($_POST['ok']) { //Wenn abgeschickt
$name = htmlentities($_POST['name']);
$mail = htmlentities($_POST['mail']);
$homepage = htmlentities($_POST['homepage']);
$eintrag = htmlentities($_POST['eintrag']);
$datum = time();
$captcha = $_POST['captcha'];
if (!$_POST['anzeige']) {
$anzeige = 0;
} else {
$anzeige = $_POST['anzeige'];
}
$sql = "INSERT INTO gast VALUES(null, '$name', '$mail', '$anzeige', '$homepage', '$eintrag', null, '$datum', '0', '0')";
if($captcha == $_SESSION['captcha'])
{mysql_query($sql); $fehler = "<b>Ihr Eintrag wird nach Überprüfung schnellstmöglichst freigeschaltet! </b>";}else {
$fehler = "Fehler beim Rechnen<br />";
}
}
$_SESSION['captcha'] = $ergebniss;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cafe Beeg :: Gästebuch</title>
<meta http-equiv="content-type" content="text/html; charset=us-ascii" />
<link href="css/style.css" type="text/css" rel="stylesheet" /><!--[if lte IE 7]>
<style type="text/css">@import url(css/ie7.css);</style>
<![endif]-->
</head>
<body>
<div class='' id='top'>
<a href="kontakt.php">Kontakt</a> <a>||</a> <a href="impressum.php">Impressum</a>
</div>
<div class='' id='wrapper'>
<div class='' id='header'></div>
<hr /><div id="abstand" ></div>
<div id="menu">
<?php include 'navi.html';
?>
</div>
<div class='' id='content'>
<h1>Unser Gästebuch</h1><hr />
<div class='' style="margin:auto; text-align:center" id='legend'><p>Einträge gesamt: <?php echo count_eintrage();
?> || Letzer Eintrag: <?php echo last_eintrag();
?> </p></div>
<br />
<!-- Neuer Eintrag -->
<form style="width:400px; margin:auto; text-align:center;" class="gast" action="gastebuch.php" method="post">
<div style="margin:auto; text-align:center">
<h2>Neuer Eintrag</h2><hr /><br />
<?php echo $fehler; ?>
<label for="name">Name</label><input name="name" id="name" type="text" /><br />
<label for="mail">E-Mail</label><input name="mail" type="text" id="mail" /><br />
<label>In Gästebuch anzeigen<input type="checkbox" name="anzeige" id="box" value="1" /></label><br />
<label for="homepage">Homepage</label><input name="homepage" id="homepage" value="http://www." type="text" /><br />
<label for="eintrag">Eintrag</label><textarea class="gast" name="eintrag" id="eintrag" cols="" rows=""></textarea><br />
<label>Kleine Rechenaufgabe: <?php echo $zahl1 . " + " . $zahl2 . " " . $fc;
?>
</label><input name="captcha" type="text" /><br />
<input id="reset" type="reset" value="Zurücksetzen" /><input id="submit" type="submit" value="Abschicken" name="ok"/><br />
</div>
</form>
<br />
<hr />
<div id="gast_ausgabe">
<?php
$sql = "SELECT * FROM gast WHERE stat LIKE '1' ORDER BY datum DESC ";
$ergebniss = mysql_query($sql);
while ($row = mysql_fetch_row($ergebniss)) {
if($row[3] == 1){
$mail = $row[2];
}
$datum = @date("d.m.Y",$row[7]);
echo "<div class='gastEintrag'><i>Name: ".$row[1] ."<br />E-Mail: <a href='mailto:".$mail."'>".$mail."</a><br />
Homepage: <a href='".$row[4]."'>".$row[4]."</a><br />
Datum: ".$datum."
</i>
<br /><br />
".$row['5']."<br /> <br />".$row[6]."
</div>";
}
?>
</div>
</div>
<div style="clear:both;" class="abstand"></div>
</div>
</body>
</html>
Kommentar