Autor Zpráva
ondra15
Profil
Ahoj, mám kód pro návštěvní knihu. Při F5 se mi poslední článek objeví ještě jednou (nakopíruje se). Dá se tomu nějak zabránit?

<?
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
?>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<LINK href="styl.css" rel="stylesheet" type="text/css">
<title>Kniha návštev - PHP</title>
</head>

<body>
<table width="500" align="center">
	<tr>
		<td width="500">
			<center><font class=nadpis>Kniha návštev</font>
				<br><br>
			<font class="male">povinné údaje označeny červeným písmem</font></center>
			<hr color="#00008B">
				<br>
	<table border="0" cellspacing="0" cellpadding="0" align="center">
		<form action="" method="post">
		<tr>
			<td width=120 class=povinne>
				Jméno:
			</td>
			<td>
				<input type="text" name="jmeno" size="30" value="<?
				if ($jmeno=="" || $email=="" || $popis==""):	//pokud nebudou zadány všechny povinné údaje, objeví se formulář znovu (s údaji, které již byly vyplněny)
				echo $jmeno;
				endif;
				?>">
			</td>
		</tr>
		<tr>
			<td width=120 class=povinne>
				E-mail:
			</td>
			<td>
				<input type="text" name="email" size="30" value="<?
				if ($jmeno=="" || $email=="" || $popis==""):	//pokud nebudou zadány všechny povinné údaje, objeví se formulář znovu (s údaji, které již byly vyplněny)
				echo $email;
				endif;
				?>">
			</td>
		</tr>
		<tr>
			<td width=120 class=nepovinne>
				Web (i s http://):
			</td>
			<td>
				<input type="text" name="web" size="30" value="<?
				if ($jmeno=="" || $email=="" || $popis==""):	//pokud nebudou zadány všechny povinné údaje, objeví se formulář znovu (s údaji, které již byly vyplněny)
				echo $web;
				endif;
				?>">
				<input type="hidden" name="odeslano" value="ano">
			</td>
		</tr>
		<tr>
			<td valign=top width=120 class=povinne>
				Text zprávy:
			</td>
			<td>
				<textarea cols="29" rows="5" name="popis"><?
				if ($jmeno=="" || $email=="" || $popis==""):	//pokud nebudou zadány všechny povinné údaje, objeví se formulář znovu (s údaji, které již byly vyplněny)
				echo $popis;
				endif;
				?></textarea>
			</td>
		</tr>
		<tr>
			<td width=120>&nbsp;
			</td>
			<td>
				<center><input type="submit" value="Odeslat">&nbsp;&nbsp;&nbsp;<input type="Reset" value="Vymazat"></center>
		
			</td>
		</tr>
		</form>
	</table>

<?
if ($odeslano=="ano"):
if ($jmeno=="" || $email=="" || $popis==""):							//kontrola zadaných udajů, pokud nebyly zadány všechny povinné údaje, do knihy se nic nezapíše
echo "<center><br><font class=male>musíte vyplnit všechny povinné údaje<br></font></center>";

else:																	//včechny povinné údaje jsou zadány

	$name = "<font class=jmeno>$jmeno</font><BR>\n";					//do proměnné "name" uloží Jméno, zformátuje jej pomocí tagu <FONT> a otevře nový řádek
	$e_mail = "<A class=odkaz HREF=mailto:$email>$email</A><BR>\n";		//do proměnné "e_mail" uloží Email, zformátuje jej pomocí tagu <FONT>, přidá odkaz typu MAILTO a otevře nový řádek
		if ($web!=""):													//pokud byl zadán Web, vytvoří proměnnou "www"
	$www = "<A class=odkaz HREF=\"$web\">$web</A><BR>\n";				//do proměnné "www" uloží Web, zformátuje jej pomocí tagu <FONT>, přidá odkaz na danou stránku a otevře nový řádek
		endif;
	$cas = "<font class=cas>" . Date("j. " . "m. " . "Y,  " . "H:i:s") . "</font><BR>\n";		//do promenne "cas" uloží aktuální datum a čas ve formátu (př. 5. 11. 2000, 13:54:53), zformátuje a načne další řádek
	$popis2 = NL2BR(HTMLSpecialChars($popis));													//změna konců řádků na tagy <BR> a ostraní znaky, které by mohly porušit formátování
	$zprava = "<BR><font class=text>$popis2</font><BR><BR><HR color=\"#00008B\"><BR>\n\n";		//do proměnné "www" uloží $popis2, zformátuje, přidá čáru, která bude oddělovat příspěvky a otevře nový řádek

	$write = StripSlashes($name . $e_mail . $www . $cas . $zprava);		//do proměnné "write" uloží všechna data, která se budou zapisovat a odstraní escape sekvence

if (File_Exists ("book.dat")):											//existuje soubor book.dat
	$fp = FOpen ("book.dat", "r");										//otevře soubor book.dat pro čtení
	$data = FRead ($fp, FileSize("book.dat"));							//přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře
	FClose($fp);														//zavře book.dat
endif;
	$fp = FOpen ("book.dat", "w");										//otevře book.dat pro přepis nebo vytvoření
	FWrite ($fp, $write.$data);											//zápis do souboru book.dat (nejprve aktuální příspěvek, poté předešlý obsah souboru book.dat)
	FClose ($fp);														//zavře soubor book.dat
endif;
endif;
?>

<hr color="#00008B"><br>

<?
if (File_Exists ("book.dat")):											//existuje soubor book.dat
$fp = FOpen ("book.dat", "r");											//otevře soubor book.dat pro čteni
FPassThru($fp);															//vypíše obsah souboru
endif;
?>

		</td>
	</tr>
</table>
</body>
</html>
Taps
Profil
ondra15:
po zápisu do souboru použij funkci header
ondra15
Profil
Taps:
Díky, vyřešeno:-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0