das gästebuch besteht aus einer book.php und einer verify.php, wobei die erste datei das komplette gästebuch generiert und die zweite das captcha. die einträge werden in einer txt-datei gespeichert.
der code der book.php ist ziemlich lang, deshalb stelle ich nur einen ausschnitt hier rein.
PHP
<?
session_start();
if (!isset ($_SESSION['home_visited']))
die ("Spambots haben keine Berechtigung");
?>
<?php
// GENERAL
$name = 'eintraege.txt'; // Where the entries will be stored
$timetowarp= 65; // Max Number of connected character till it warps. Adapt it if you change the fontsize!
$admincode = 'XXXX'; // Set the administration code!
// WRITE DATA
if ($_POST[adminaction] == 1 ) {
$adminaction = 0;
$ok = true;
$nachricht = $_POST[nachricht];
$nachricht = eregi_replace("\[img]URL\[/img]", "", $nachricht); // for some stupid people
$username = $_POST[username];
$usermail = $_POST[usermail];
if ($username == "" ) { $ok = false;}
if ($usermail == "" ) { $usermail = "Kein Eintrag!";}
if ($nachricht == "" ) { $ok = false;}
if (strpos($usermail, '@') == 0) { $usermail = "Kein Eintrag!";}
if ($_POST[verify] != $_SESSION["the_code"]) { $ok = false; }
$username = ereg_replace (">", ">", $username);
$username = ereg_replace ("<", "<", $username);
$nachricht = ereg_replace ("<", "<", $nachricht);
$nachricht = ereg_replace (">", ">", $nachricht);
$usermail = ereg_replace ("<", "<", $usermail);
$usermail = ereg_replace (">", ">", $usermail);
$nachricht = ereg_replace ("\r\n", "
", $nachricht);
$nachricht = ereg_replace ("\n\r", "
", $nachricht);
$nachricht = ereg_replace ("\n", "
", $nachricht);
if ($ok == true) {
$datumeingabe = date("d.m.y - H:i");
$file = fopen($name, "a");
fputs($file, "$datumeingabe>$username>$usermail>$nachricht");
fputs($file, "\r\n");
fclose($file);
}
if ($ok == false)
{
echo '
<font color="#FFFFFF">[b]Bitte geben Sie den Sicherheitscode ein![/b]</font></p>';
}
}
// Seitenübertragung
$HTTP_GET_VARS['Seite'];
if ($_GET[page] == '' ) {$_GET[page] = 1;}
$HTTP_GET_VARS['block'];
if ($block == '' ) {$block = 1;}
$HTTP_GET_VARS['admin'];
if ($_GET[admin] == '' ) {$_GET[admin] = 0;}
// READ AND WRITE DATA IF DATABASE NEEDS TO BE CHANGED
if ($_GET[admin] == 2) {
if ($_POST[passcode] == $admincode) {
$fd = fopen($name, "r");
$array = file($name);
$i = sizeof($array);
fclose ($fd);
$fd = fopen($name, "w");
$s = 0;
while ($s <= $i):
if ($_POST[mes][$s+1] <> 'DEL') { fputs($fd, $array[$s]); }
$s++;
endwhile;
fclose ($fd);
echo '<font color="#FFFFFF">[b]Selected messages have been deleted![/b]</font>
';
}
else { echo '<font color="#FFFFFF">[b]Insert right passcode![/b]</font>
'; }
$admin=1;
}
// LESE DATEN / READ DATA
if ( file_exists( $name) == TRUE)
{
// $array von hinten nach vorne durchlaufen
$fd = fopen($name, "r");
$array = file($name);
fclose ($fd);
$zeilen = 0;
$i = sizeof($array);
while ($i--) {
$zeilen = $zeilen+1;
$arrayback[$zeilen] = trim($array[$i]) . "
\n";
}
$pagecopy = $_GET[page];
$_GET[page] = ($_GET[page]-1)*10;
echo '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="99%">
<tr>
<td width="50%">[b]Die Einträge: ';
if ($_GET[admin] == 1 ) {echo '<form method=post ACTION="book.php?admin=2">'; }
echo'</td> <td width="50%">
<p align="right">[b]('.$zeilen.' Einträge insgesamt)</font></td>
</tr>
</table>
';
for ($i = 1; $i <= 10; $i++) { // loop for message displaying
$zeile = $arrayback[$i+$_GET[page]];
if ($zeile <> "") {
$datum = substr($zeile,0, strpos($zeile, '>') );
$temp = substr($zeile,strpos($zeile, '>')+1,strlen($zeile));
$username = substr($temp,0,strpos($temp,">"));
$temp = substr($temp,strpos($temp,">")+1, strlen($temp));
$usermail = substr($temp,0,strpos($temp,">"));
$nachricht = substr($temp,strpos($temp,">"),strlen($temp));
$nachricht = eregi_replace('\\\"', '"', $nachricht);
$nachricht = eregi_replace("\\\'", "'", $nachricht);
// SIMILIES ADAPTION
// GENERATE URL LINKs
$fractal ='';
$setoff = 0;
for ($l = 0; $l <= strlen($nachricht); $l++) {
if ($nachricht[$l+0].$nachricht[$l+1].$nachricht[$l+2].$nachricht[$l+3] == 'http') {
if ($nachricht[$l-1] <> ']' ) {
$fractal = $fractal.'<a href="';
$setoff = 1;
$linkstrpos = $l;
}
}
if ($setoff == 1 ) { if ($nachricht[$l] == ' ' ) { $linkname = substr($nachricht, $linkstrpos, $l-$linkstrpos); $fractal = $fractal.'" target="_new">'.$linkname.'</a>'; $setoff = 0; } }
if ($setoff == 1 ) { if ($nachricht[$l] == '<' ) { $linkname = substr($nachricht, $linkstrpos, $l-$linkstrpos); $fractal = $fractal.'" target="_new">'.$linkname.'</a>'; $setoff = 0; } }
$fractal = $fractal.$nachricht[$l];
}
$nachricht = $fractal;
// CONVERT IMAGES
$nachricht = eregi_replace('\[\img]', '<img src="', $nachricht);
$nachricht = eregi_replace('\[\/img]', '">', $nachricht);
// DO THE WARPING
$fractal ='';
$iz = 0;
for ($z = 1; $z <= strlen($nachricht); $z++) {
$fractal = $fractal.$nachricht[$z];
$iz++;
if ($iz == $timetowarp) {
if (strpos(substr($nachricht, $z-$iz, $iz),' ') == False ) { if (strpos(substr($fractal , strlen($fractal)-3, strlen($fractal)),'<') == False ){$fractal = $fractal.' ' ; }}
$iz = 0;
}
}
$nachricht = $fractal;
//
$nachricht = eregi_replace('src="http: ', 'src="http:', $nachricht);
$nummerdis = $zeilen-($i+$_GET[page])+1;
if ($_GET[admin] == 1 ) {$deletebox = '
<font color="#FFFFFF">Lösch diesen Eintrag<input type="checkbox" name="mes['.$nummerdis.']" value="DEL" >';}
echo '<table borderColor="#FFFFFF" cellSpacing="0" cellPadding="0" width="99%" border="0" style="border-collapse: collapse">
<tr>
<td align="right" width="20" height="1">
<p align="left">[b]
<font color="#FFFFFF" >Nr.</font>[/b]</td>
<td width="40" height="1">
<p align="left"><font color="#0078b3">'.$nummerdis.'</font></td>
<td width="155" height="1">
[b]Datum:[/b] '.$datum.'</td>
<td width="300" height="1">
<p align="left">[b]Name: [/b]'.$username.'</td>
<td width="231" height="1">
<p align="left">[b]E-mail:[/b]
[url='mailto:'.$usermail.'']'.$usermail.'[/url] </td>
</tr>
</table>
<table style="BORDER-COLLAPSE: collapse" borderColor="#FFFFFF" cellSpacing="0" cellPadding="0" width="99%" border="0">
<tr>
<td width="99%">
<p align="left">
'.$nachricht.$deletebox.'</td>
</tr>
</table>
';
}}
Alles anzeigen
...hoffe das kann euch irgendwie helfen!
grüße spawn