Hi,
Auf http://www.lenkercrew.de/Gaestebuch/index.php habe ich ein Gästebuch angelegt, wollte es etwas ändern da habe ich Mist fabriziert - der letzte Eintrag hat immer die 1 sollte aber so sein das die Zahl steigt mit der Anzahl der Einträge. Wenn einer einen Tipp Hier mal der Code
Auf http://www.lenkercrew.de/Gaestebuch/index.php habe ich ein Gästebuch angelegt, wollte es etwas ändern da habe ich Mist fabriziert - der letzte Eintrag hat immer die 1 sollte aber so sein das die Zahl steigt mit der Anzahl der Einträge. Wenn einer einen Tipp Hier mal der Code
PHP:
<?
$title = "Gästebuch der Lenkercrew";//Name des Gastbuches
$admin_password = "#";//Administratorpasswort
$admin_email = "info@lenkercrew.de";//Benachrichtigung an
$home = "http://www.lenkercrew.de";//eigene Webseite
$notify = "YES";//Soll eine Email gesendet werden
$os = "UNIX";//Betriebssystem WIN/UNIX
$max_entry_per_page = 10;//Einträge pro Seite
$data_file = "store.dat";//Speicherdatei
$max_record_in_data_file = 300;//Anzahl der Einträge in der Datendatei
$max_entry_per_session = 190;//Anzahl der Einträge/Sitzung
$imgcode = "YES";//YES/NO-nur wenn Webserver kein GD lib unterstützt
$background = "#000000";//Hintergrundfarbe
$table_top = "#ffffff";//Gästebuch Header
$table_content_1a = "#ffffff";//Farbe Formular1
$table_content_1b = "#ffffff";//Formular Footer,Seite L/R1
$table_content_2a = "#ffffcc";//Farbe Formular2
$table_content_2b = "#ffffcc";//Formular Footer,Seite L/R2
$table_bottom = "#ffffff";//Gästebuch Farbe Footer
$table_border = "#000000";
$title_color = "#ffffff";//Titel
$link = "#000000";
$visited_link = "#0000FF";
$active_link = "#FF0000";
$font_face = "verdana";
$message_font_face = "verdana";
$message_font_size = "2";//Ende Schrift und Farbeinstellung
$do = isset($_REQUEST['do']) ? trim($_REQUEST['do']) : "";
$id = isset($_GET['id']) ? trim($_GET['id']) : "";
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$self = $_SERVER['PHP_SELF'];
if (!file_exists($data_file)) {
echo "<b>Fehler !!</b> Datendatei nicht vorhanden : $data_file.<br>";
exit;
} else {
if ($max_record_in_data_file != "0") {
$f = file($data_file);
rsort($f);
$j = count($f);
if ($j > $max_record_in_data_file) {
$rf = fopen($data_file,"w");
if (strtoupper($os) == "UNIX") {
if (flock($rf,LOCK_EX)) {
for ($i=0; $i<$max_record_in_data_file; $i++) {
fwrite($rf,$f[$i]);
}
flock($rf,LOCK_UN);
}
} else {
for ($i=0; $i<$max_record_in_data_file; $i++) {
fwrite($rf,$f[$i]);
}
}
fclose($rf);
}
}
}
session_start();
$newline = (strtoupper($os) == "WIN") ? "\r\n" : "\n";
switch ($do) {
case "":
$record = file($data_file);
rsort($record);
$jmlrec = count($record);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Startseite -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.img {
position: fixed;
left: 0px;
bottom:0;
}
.tabelle {
position: relative;
}
</style>
<title>
<?=$title?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body class="body" bgcolor="<?=$background?>" link="<?=$link?>" vlink="<?=$visited_link?>" alink="<?=$active_link?>" style="font-family:<?=$font_face?>">
<img class="img" src="bilder/Skull1.jpg" alt="skull" width="339" height="342" />
<center>
<br />
<font size="5" color="<?=$title_color?>"><b>
<?=$title?>
</b></font><br />
<font size="1"><b><a href="<?=$home?>"><font color="<?=$title_color?>">Home</font></a> </b> </font> <br />
<br />
<br />
<table class="tabelle" width="600" cellpadding="1" cellspacing="1" border="0">
<tr bgcolor="<?=$table_border?>">
<td><table width="100%" cellpadding="4" cellspacing="1" border="0">
<tr>
<td bgcolor="<?=$table_top?>" colspan="3" width="100%"><div align="center"><font size="2"><a href="<?="$self?do=add_form&page=$page"?>" >Hier</a> gehts zum Gästebuch</font> </div></td>
</tr>
<?
$jml_page = ceil($jmlrec/$max_entry_per_page);
$nomrec = $page * $max_entry_per_page - $max_entry_per_page;
$no = $page*$max_entry_per_page-$max_entry_per_page;
if ($jmlrec == 0) {
echo '<tr><td colspan="3" bgcolor="#ffffff" align="center"><font size="2">Keine Einträge vorhanden.</font></td></tr>';
}
$w = 0; //--Farbe
for ($i=0; $i<$max_entry_per_page; $i++) {
$nomrec++;
$no++;
//$no--;
$recno = $nomrec-1;
if (isset($record[$recno])) {
$row = explode("|~|",$record[$recno]);
if ($w==0) {
$warna = $table_content_1a;
$warna2 = $table_content_1b;
$w=1;
} else {
$warna = $table_content_2a;
$warna2 = $table_content_2b;
$w=0;
}
echo "<tr>
<td bgcolor=\"$warna2\" align=\"center\" valign=\"top\" width=\"15\">
<font size=\"2\">$no</font>
</td>
<td bgcolor=\"$warna\" width=\"570\">
<table border=\"0\" width=\"100%\">
<tr>
<td>
<font size=\"1\">$row[2]</font><br>
<font size=\"2\"><b>$row[3]</b></font>
</td>
";
echo "<td align=\"right\" valign=\"top\">";
if (trim($row[4]) != "") {
echo "<a href=\"mailto:$row[4]\"><img src=\"bilder/email.png\" border=\"0\" alt=\"$row[4]\"></a>";
}
if (trim($row[6]) != "" && trim($row[6]) != "http://") {
if (ereg("^http://", trim($row[6]))) echo " <a href=\"$row[6]\" target=\"_blank\"><img src=\"bilder/home.png\" border=\"0\" alt=\"$row[6]\"></a>";
else echo " <a href=\"http://$row[6]\" target=\"_blank\"><img src=\"bilder/home.png\" border=\"0\" alt=\"$row[6]\"></a>";
}
echo '</td></tr></table>';
echo "<br><table border=\"0\" width=\"100%\">
<tr><td width=\"5\"> </td><td>
<font size=\"2\" face=\"$message_font_face\" size=\"$message_font_size\">".stripslashes($row[5])."</font>
</td></tr>
</table>
";
echo '</td>';
echo "<td valign=\"top\" bgcolor=\"$warna2\" align=\"center\" width=\"15\">
<a href=\"$self?do=del&id=$row[1]&page=$page\">
<img src=\"bilder/loeschen.png\" alt=\"Eintrag löschen # $no\" border=0 align=\"center\"></a>
</td>
</tr>";
} //--end if
} //--end for
echo "<tr><td colspan=\"3\" bgcolor=\"$table_bottom\" align=\"center\" width=\"600\"><font size=\"2\">";
if ($jml_page > 1) {
if ($page != 1) echo "[<a href=\"$self?page=1\">Vorige Seite</a>] "; else echo '[Vorige Seite] ';
echo ' ';
if ($jml_page > 10) {
if ($page < 5) {
$start = 1;
$stop = 10;
} elseif ($jml_page - $page < 5) {
$start = $jml_page - 9;
$stop = $jml_page;
} else {
$start = $page-4;
$stop = $page+5;
}
if ($start != 1) echo '... ';
for ($p=$start; $p<=$stop; $p++) {
if ($p == $page) echo "<font color=\"$active_link\"><b>$p</b></font> ";
else echo "<a href=\"$self?page=$p\">$p</a> ";
}
if ($stop != $jml_page) echo '... ';
echo "of $jml_page ";
} else {
for ($p=1; $p<=$jml_page; $p++) {
if ($p == $page) echo "<font color=\"$active_link\"><b>$p</b></font> ";
else echo "<a href=\"$self?page=$p\">$p</a> ";
}
}
if ($page != $jml_page) echo "[<a href=\"$self?page=$jml_page\">Nächste Seite</a>]";
else echo '[Nächste Seite]';
} else echo 'Seite 1 von 1';
echo '</font></td></tr>';
?>
</table></td>
</tr>
</table>
<br />
</center>
</body>
</html>
<?
break;
case "add_form":
$_SESSION['secc'] = strtoupper(substr(sha1(time().$admin_email),0,4));
if (!isset($_SESSION['add'])) $_SESSION['add'] = 0;
if (!isset($_SESSION['name'])) $_SESSION['name'] = "";
if (!isset($_SESSION['email'])) $_SESSION['email'] = "";
if (!isset($_SESSION['url'])) $_SESSION['url'] = "http://";
if (!isset($_SESSION['comment'])) $_SESSION['comment'] = "";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Formularseite -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
<?=$title?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<head>
<style type="text/css">
.img {
position: fixed;
left: 0px;
bottom:0;
}
.tabelle {
position: relative;
}
</style>
</head>
<body bgcolor="<?=$background?>" style="font-family:<?=$font_face?>">
<img class="img" src="bilder/Skull.jpg" alt="skull" width="339" height="342" />
<div align="center"> <font size="5" color="<?=$title_color?>"><b>
<?=$title?>
</b></font><br />
<font size="1"><b><a href="<?=$home?>"><font color="<?=$title_color?>">Home</font></a> :: <a href="<?=$self?>"><font color="<?=$title_color?>">Eintrag ansehen</font></a></b></font> <br />
<br />
<form method="post" action="<?=$self?>">
<input type="hidden" name="do" value="add" />
<table class="tabelle" width="500" border="0" cellspacing="0" cellpadding="0" bgcolor="<?=$table_border?>">
<tr>
<td><div align="center">
<table width="100%" border="0" cellspacing="1" cellpadding="5">
<tr bgcolor="<?=$table_content_1a?>">
<td class="td" width="28%"><div align="right"><font size="2">*Name : </font></div></td>
<td width="72%"><input type="text" name="vname" size="30" maxlength="70" value="<?=$_SESSION['name']?>" /></td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%"><div align="right"><font size="2">Email : </font></div></td>
<td width="72%"><input type="text" name="vemail" size="30" maxlength="100" value="<?=$_SESSION['email']?>" /></td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%"><div align="right"><font size="2">Webseite : </font></div></td>
<td width="72%"><input type="text" name="vurl" size="30" maxlength="150" value="<?=$_SESSION['url']?>" /></td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td valign="top" width="28%"><div align="right"><font size="2">*Nachricht : </font></div></td>
<td width="72%"><textarea name="vcomment" cols="40" rows="7" ><?=$_SESSION['comment']?>
</textarea>
<br />
<font size="1">* Pflichtfelder</font></td>
</tr>
<?if (strtoupper($imgcode) == "YES") {?>
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%"><div align="right"><font size="2">Code hier <br />
einfügen :</font></div></td>
<td width="72%"><font size="1"> </font> <img src="image.php?<?=time()?>" border="0" alt="code" /><br />
<input type="text" name="vsecc" size="4" maxlength="4" /></td>
</tr>
<?}?>
<tr bgcolor="<?=$table_content_1b?>">
<td colspan="2"><div align="center"> <font size="2">
<input type="submit" value="Abschicken" />
<input type="reset" value="Alles löschen" />
</font> </div></td>
</tr>
</table>
</div></td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?
break;
case "add":
$vname = isset($_POST['vname']) ? trim($_POST['vname']) : "";
$vemail = isset($_POST['vemail']) ? trim($_POST['vemail']) : "";
$vurl = isset($_POST['vurl']) ? trim($_POST['vurl']) : "";
$vcomment = isset($_POST['vcomment']) ? trim($_POST['vcomment']) : "";
$vsecc = isset($_POST['vsecc']) ? strtoupper($_POST['vsecc']) : "";
if (strlen($vname) > 70) $vname = substr($vname,0,70);
if (strlen($vemail) > 100) $vemail = substr($vemail,0,100);
if (strlen($vurl) > 150) $vurl = substr($vurl,0,150);
$_SESSION['name'] = $vname;
$_SESSION['email'] = $vemail;
$_SESSION['url'] = $vurl;
$_SESSION['comment'] = stripslashes($vcomment);
if ($vname == "" || $vcomment == "") {
input_err("Überprüfen Sie Ihre Eingabe.");
}
if ($vemail != "" && !preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $vemail)) {
input_err("Falsche Email-addresse.");
}
if ($vurl != "" && strtolower($vurl) != "http://") {
if (!preg_match ("#^http://[_a-z0-9-]+\\.[_a-z0-9-]+#i", $vurl)) {
input_err("Falsches URL-Format.");
}
}
$test_comment = preg_split("/[\s]+/",$vcomment);
$jmltest = count($test_comment);
for ($t=0; $t<$jmltest; $t++) {
if (strlen(trim($test_comment[$t])) > 70) {
input_err("Bitte überprüfen sie Ihren Eintrag : ".stripslashes($test_comment[$t]));
}
}
if (isset($_SESSION['add']) && $_SESSION['add'] >= $max_entry_per_session) {
input_err("Sorry, nur $max_entry_per_session eine Nachricht -Spamschutz-.",false);
} elseif (!isset($_SESSION['add'])) {
exit;
}
if ($vsecc != $_SESSION['secc'] && strtoupper($imgcode) == "YES") {
input_err("Falscher Code");
}
$maxchar = 1000;//Maximale Zeichenanzahl
if (strlen($vcomment) > $maxchar) $vcomment = substr($vcomment,0,$maxchar)."...";
$idx = date("YmdHis");
$tgl = date("F d, Y - h:i A");
$vname = str_replace("<","<",$vname);
$vname = str_replace(">",">",$vname);
$vname = str_replace("~","-",$vname);
$vname = str_replace("\"",""",$vname);
$vcomment = str_replace("<","<",$vcomment);
$vcomment = str_replace(">",">",$vcomment);
$vcomment = str_replace("|","",$vcomment);
$vcomment = str_replace("\"",""",$vcomment);
$vurl = str_replace("<","",$vurl);
$vurl = str_replace(">","",$vurl);
$vurl = str_replace("|","",$vurl);
$vemail = str_replace("<","",$vemail);
$vemail = str_replace(">","",$vemail);
$vemail = str_replace("|","",$vemail);
if (strtoupper($os) == "WIN") {
$vcomment = str_replace($newline,"<br>",$vcomment);
$vcomment = str_replace("\r","",$vcomment);
$vcomment = str_replace("\n","",$vcomment);
} else {
$vcomment = str_replace($newline,"<br>",$vcomment);
$vcomment = str_replace("\r","",$vcomment);
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && eregi("^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$",$_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipnum = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ipnum = getenv("REMOTE_ADDR");
}
$newdata = "|~|$idx|~|$tgl|~|$vname|~|$vemail|~|$vcomment|~|$vurl|~|$ipnum|~|";
$newdata = stripslashes($newdata);
$newdata .= $newline;
if (!is_spam($newdata)) {
$tambah = fopen($data_file,"a");
if (strtoupper($os)=="UNIX") {
if (flock($tambah,LOCK_EX)) {
fwrite($tambah,$newdata);
flock($tambah,LOCK_UN);
}
} else {
fwrite($tambah,$newdata);
}
fclose($tambah);
//--email senden
if (strtoupper($notify) == "YES") {
$msgtitle = "Sie haben einen Eintrag im Gästebuch bekommen";
$vcomment = str_replace(""","\"",$vcomment);
$vcomment = stripslashes($vcomment);
$vcomment = str_replace("<br>","\n",$vcomment);
$msgcontent = "Local time : $tgl\n\nThe addition from $vname :\n----------------------------\n\n$vcomment\n\n-----End Message-----";
@mail($admin_email,$msgtitle,$msgcontent,"From: $vemail\n");
}
//--neue Session
$_SESSION['name'] = "";
$_SESSION['email'] = "";
$_SESSION['url'] = "http://";
$_SESSION['comment'] = "";
$_SESSION['add']++;
$_SESSION['secc'] = "";
redir($self,"Vielen Dank für Ihren Eintrag.");
} else {
redir($self,"Sorry, dieser Eintrag kommt nicht ins Gästebuch.");
}
break;
case "del":
$record = file($data_file);
$jmlrec = count($record);
for ($i=0; $i<$jmlrec; $i++) {
$row = explode("|~|",$record[$i]);
if ($id == $row[1]) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Eintragloeschen</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body bgcolor="<?=$background?>" style="font-family:verdana">
<center>
<font size="4" color="<?=$title_color?>">Eintrag löschen</font> <br />
<br />
<table border="0" cellpadding="5" cellspacing="1" width="450">
<tr>
<td bgcolor="<?=$table_top?>"><font size="2"> <font size="1">
<?=$row[2]?>
</font><br />
<?=$row[3]?>
- <a href="mailto:<?=$row[4]?>">
<?=$row[4]?>
</a> <br />
<br />
<?=$row[5]?>
<br />
<br />
<font size="1">IP :
<?=$row[7]?>
</font> </font></td>
</tr>
</table>
<form action="<?=$self?>" method="post">
<input type="hidden" name="do" value="del2" />
<input type="hidden" name="id" value="<?=$id?>" />
<input type="hidden" name="page" value="<?=$page?>" />
<font color="<?=$title_color?>" size="2"><br />
<b>Login : </b></font>
<input type="password" name="pwd" />
<br />
<br />
<font size="2" color="<?=$title_color?>"><b>»</b>
<input type="checkbox" name="byip" value="<?=$row[7]?>" />
Alle Einträge dieser IP-Adresse löschen :
<?=$row[7]?>
</font> <br />
<br />
<input type="submit" value="Löschen" />
<input type="button" value="Abbruch" onclick="window.location='<?="$self?page=$page"?>'" />
</form>
</center>
</body>
</html>
<?
}
}
break;
case "del2":
$pwd = isset($_POST['pwd']) ? trim($_POST['pwd']) : "";
$id = isset($_POST['id']) ? trim($_POST['id']) : "";
$page = isset($_POST['page']) ? $_POST['page'] : 1;
$byip = isset($_POST['byip']) ? $_POST['byip'] : "";
if ($pwd != $admin_password) {
redir("$self?page=$page","Falsches Passwort !");
}
$record = file($data_file);
$jmlrec = count($record);
for ($i=0; $i<$jmlrec; $i++) {
$row = explode("|~|",$record[$i]);
if ($byip == "") {
if ($row[1] == $id) {
$record[$i] = "";
break;
}
} else {
if ($row[7] == $byip) {
$record[$i] = "";
}
}
}
$update_data = fopen($data_file,"w");
if (strtoupper($os) == "UNIX") {
if (flock($update_data,LOCK_EX)) {
for ($j=0; $j<$jmlrec; $j++) {
if ($record[$j] != "") {
fputs($update_data,$record[$j]);
}
}
flock($update_data,LOCK_UN);
}
} else {
for ($j=0; $j<$jmlrec; $j++) {
if ($record[$j] != "") {
fputs($update_data,$record[$j]);
}
}
}
fclose($update_data);
redir("$self?page=$page","Der Eintrag wurde gelöscht !");
break;
}
function redir($target,$msg) {
global $background,$font_face,$title_color;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.img {
position: fixed;
left: 0px;
bottom:0;
}
.tabelle {
position: relative;
}
</style>
<meta http-equiv="Refresh" content="1; url=<?=$target?>" />
</head>
<body bgcolor="<?=$background?>">
<img class="img" src="bilder/Skull.jpg" alt="skull" width="339" height="342" />
<center>
<font color="<?=$title_color?>" face="<?=$font_face?>">
<h3>
<?=$msg?>
</h3>
Es geht gleich weiter...</font>
</center>
</body>
</html>
<?
exit;
}
function input_err($err_msg,$linkback=true) {
global $background,$font_face;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fehler !</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body bgcolor="#300000">
<center>
<br />
<br />
<table border="0" bgcolor="#300000" cellspacing="0" cellpadding="6">
<tr>
<td align="center"><font size="3" color="#ffffff" face="<?=$font_face?>"><b>Bitte überprüfen Sie den Code</b> </b>
<?if ($linkback) {?>
<br />
<br />
<font size="2"><a href="javascript:history.back()">Zurück</a></font>
<?}?>
</font></td>
</tr>
</table>
</center>
</body>
</html>
<?
exit;
}
function is_spam($string) {
$data = "spam.dat";
$is_spam = false;
if (file_exists($data)) {
$spamword = file($data);
$jmlrec = count($spamword);
for ($i=0; $i<$jmlrec; $i++) {
$spamword[$i] = trim($spamword[$i]);
if (eregi($spamword[$i],$string)) {
$is_spam = true;
break;
}
}
}
return $is_spam;
}
?>