Einzelnen Beitrag anzeigen
  #1  
Alt 22.05.2006, 14:27:58
SirBlack SirBlack ist offline
Anfänger
 
Registriert seit: Mar 2006
Beiträge: 14
Mein GB funktioniert nicht einwandfrei.

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"&nbsp<h1>Neuer G&auml;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&uuml;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("<","&lt;",$eintrag);
					$eintrag = ereg_replace(">","&gt;",$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 "	&nbsp<h1>G&auml;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>&nbsp";
							echo "</td>
								<td width=\"55%\" style=\"border: 1px solid #999999;empty-cells: show;\">&nbsp $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
Mit Zitat antworten