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: 13 let
|
0