Hallo,
ich habe folgendes Gästebuch gefertigt.
Code:
<?php $action = isset($_REQUEST['action']) ? trim($_REQUEST['action']) : "show";
$hidden = isset($_REQUEST['hidden']) ? trim($_REQUEST['hidden']) : "";
$name = isset($_REQUEST['name']) ? trim($_REQUEST['name']) : "";
$nname = isset($_REQUEST['nname']) ? trim($_REQUEST['nname']) : "";
$email = isset($_REQUEST['email']) ? trim($_REQUEST['email']) : "";
$text = isset($_REQUEST['text']) ? trim($_REQUEST['text']) : "";
$page = isset($_REQUEST['page']) ? trim($_REQUEST['page']) : "";
$datei = "gb.txt";
$file = file($datei);
if(!isset($rev))
{
$rev = count($file);
$rev--;
}
$rev = isset($_REQUEST['rev']) ? trim($_REQUEST['rev']) : "$rev";
if($action == "eintragen")
{
echo" <h1>Neuer Gästebucheintrag</h1>";
echo "
<form name=\"eintragen\" action=\"gaste.php\" method=\"get\">
<table align=\"center\">
<tr><td></td><td><input name=\"hidden\" type=\"hidden\" value=\"senden\"></td></tr>
<tr><td>Name:</td><td><input name=\"name\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\"></td></tr>
<tr><td>Nachname:</td><td><input name=\"nname\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\"></td></tr>
<tr><td>E-Mail:</td><td><input name=\"email\"type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\"></td></tr>
<tr><td>Kommentar:</td><td><textarea name=\"text\" cols=\"30\" rows=\"8\" wrap=\"physical\"></textarea></td></tr>
<tr><td><input type=\"submit\" value=\"Absenden\"></td><td><input type=\"reset\" value=\"Zurücksetzen\"></td></tr>
</table>
</form>";
}
if($hidden == "senden")
{
$db = fopen("gb.txt","a+");
$time = date("H:i");
$date = date("d.m.Y");
$nl = chr(13) . chr(10);
$eintrag = ereg_replace("<","<",$eintrag);
$eintrag = ereg_replace(">",">",$eintrag);
$eintrag = preg_replace("/\r\n|\r|\n/", "<br>", $text);
$ein = "$time|$date|$eintrag|$email|$name|$nname$nl";
$schreib = fwrite($db,$ein);
fclose($db);
$action = "show";
!$page;
echo" Falls Ihr Eintrag nicht angezeigt wird, gehts <a href=\"gaste.php\"><b>HIER</b></a> weiter";
}
if( $action == "show")
{
echo "  <h1>Gästebuch</h1>
<div align=\"center\">
<a href=\"gaste.php?action=eintragen\">EINTRAGEN</a>
</div>";
$datei = "gb.txt";
$file = file($datei);
$num = count($file);
if(!$page)
{
$start = 0;
$ende = 25;
}
else
{
$start = $page * 25;
$ende = $start + 25;
}
for($i = $start; $i < $ende; $i++)
{
$data = $file[$rev];
$data = explode("|",$data);
if($i > $num or $data[0] < "0")
{
echo "";
}
else
{
echo "<center><table width=\"80%\">
<tr>
<td height=\"10px\" colspan=\"2\">Eintrag Nr.:";
$rev++;
echo "$rev </td></tr>";
$rev--;
echo "<tr>
<td style=\"border: 1px solid #999999;\"><b>$data[4] $data[5]</b><br>schrieb am $data[1] um $data[0] Uhr<br>";
echo "<a href=\"mailto:$data[3]\">$data[3]</a> ";
echo "</td>
<td width=\"55%\" style=\"border: 1px solid #999999;empty-cells: show;\">  $data[2]</td></tr>
<tr><td height=\"20px\" style=\"empty-cells: show;\"></td></tr>
</table>";
$rev--;
}
}
$total = count($file);
$seiten = ceil($total / 25);
echo "Seite:";
for($j=0;$j<$seiten;$j++)
{
$rev =($total - ($j * 25)) - 1;
echo " <a href=\"gaste.php?action=show&page=$j&rev=$rev\">$j</a>";
}
echo"</center>";
}
?>
wenn ich nun die seite lade wird einfach das Gästebuch angezeigt. Wenn jemand einen neuen eintrag macht wird dieser jedoch nicht sofort angezeigt. Die Seite muss erst neu geladen werden. Dies geschieht unter der if-Schleife bei "hidden = senden". Ihr könnt euch ansehen wie ich das Problem jetzt gelöst habe, aber irgendwie ist das ja nicht so elegant. Wie kann ich mir das sparen und dafür sorgen das automatishc neugeladen wird?
mfg Erik