PHP: Kniha návštěv
Na této stránce najdete zdrojový kód jednoduché knihy návštěv. Nebudeme potřebovat databázi, data budeme ukládat do externího souboru.
Kniha návštěv, zdrojový kód
<html><body> <?php $action = $_POST['action']; $jmeno = $_POST['jmeno']; $mail = $_POST['mail']; $vzkaz = $_POST['vzkaz']; $kontrola = $_POST['kontrola']; function antispam($email, $jmeno){ $return = "<script type=\"text/javascript\"><!--\ndocument.write('<a href=\"' + 'mailto:' + '"; for($i=0;$i<strlen($email);$i++){ $code .= $email{$i}=='@' ? "' + '".ord("@")."' + '" : "".ord($email{$i}).";"; } $return .= $code."' + '\">' + '".$jmeno."' + '<\/a>');\n--></script>"; RETURN $return; } ?> <form name="form" method="post" action="kniha.php"> <table><tr><td>jméno:</td> <input type="hidden" value="uloz" name="action" /> <td><input type="text" name="jmeno" value="<?php echo $jmeno ?>" size="50" /</td> </tr><tr><td>e-mail:</td> <td><input type="text" name="mail" value="<?php echo $mail ?>" size="50" /></td> </tr><tr></tr> <tr><td valign="top">Vzkaz</td> <td><textarea name="vzkaz" cols="40" value="<?php echo $vzkaz ?>" rows="5"><?php echo $vzkaz ?> </textarea></td></tr> <tr><td></td><td>Ochrana proti spamu: 4 plus 5 = <input type="text" name="kontrola" value="<?php echo $kontrola ?>" size="8" /> </td> <tr><td></td><td> <input type="submit" value="odeslat"></td> </tr> </table> </form> <table> <?php if ($action=='uloz'): $soubor = "kniha.body"; @$ext = fopen($soubor, "r"); @$obsah = fread($ext, filesize($soubor)); @FClose($ext); if($kontrola != "9"): echo "<h6>Špatná odpověď</h6>"; elseif(($vzkaz=="") or ($jmeno=="")): echo "<h6>Nejsou vyplněny požadované údaje</h6>"; else: $ext = fopen("kniha.body", "w"); $mail = HTMLSpecialCHars($mail); if($mail == "") $mail = ""; else $mail = antispam($mail,$mail); $jmeno = HTMLSpecialCHars($jmeno); $vzkaz = HTMLSpecialCHars($vzkaz); $tab = "<tr><td width=\"300\" >".$jmeno."</td> <td align=\"right\">".Date(" d/m/Y H:i:s")."</td> </tr><tr><td colspan=\"2\">".$vzkaz."</td> </tr><tr><td width=\"150\">".$mail."</td> </tr><tr><td colspan=\"2\"><hr size=\"1\"></td> </tr>"; fputs($ext, "$tab"); fputs ($ext, "$obsah"); FClose($ext); @$ext = fopen("kniha.body", "r"); @fpassThru($ext); endif; else: @$ext = fopen("kniha.body", "r"); @fpassThru($ext); endif; ?> </table> </body> </html>
Trochu vysvětlení
Prostřednictvím formuláře ukládáme data do souboru kniha.body
.
Konstrukce if ($action=='uloz'):
určuje, zda jsme odeslali nějaká
data, pokud ano uloží je a vypíše obsah celého souboru. Pokud ne, pouze vypíše obsah souboru. Pokud je zadána e-mailová adresa, skript ji doplní o odkaz a href="mailto:.."
. Skript kontroluje, zda bylo zapsáno jméno a obsah příspěvku. Soubor s formulářem je nutné pojmenovat kniha.php
, nebo změňte URL v hlavičce formuláře (u atributu action
). Skript zahrnuje i jednoduchou kontrolu proti spamu (příklad 4 + 5, výsledek 9). Otázku můžete nahradit čímkoli jiným, pouze je pak třeba zapsat do skriptu správný výsledek u if($kontrola != "9"):
, místo "9" může být jiné číslo, slovo atd. Funkce antispam()
zajišťuje ochranu výpisu e-mailové adresy proti spamu.
Vyhledávání
Základy
Rozšíření
Příklady
- PHP scripty
- Kniha návštěv
- Ochrana e-mailu
- Malé šablony
- Počítadlo návštěv
- Odeslání e-mailu
- Generování formuláře
- IP adresa
- RSS čtečka
- Heslo
- Zaheslování jedné stránky
- Ověření e-mailu
- Odstranění diakritiky
- Aktuální datum a čas
- Vypsání souboru
- Počet souborů v adresáři
- Vypsat název dne
- Vypsat název měsíce
Ostatní
Poradna
Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.