| Autor | Zpráva | ||
|---|---|---|---|
| ondra15 Profil |
#1 · Zasláno: 17. 6. 2011, 13:39:25
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>
</td>
<td>
<center><input type="submit" value="Odeslat"> <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 |
#2 · Zasláno: 17. 6. 2011, 14:08:15
ondra15:
po zápisu do souboru použij funkci header |
||
| ondra15 Profil |
#3 · Zasláno: 17. 6. 2011, 14:23:02
Taps:
Díky, vyřešeno:-) |
||
|
Časová prodleva: 15 let
|
|||
0