ksiega.php ----------------
Transkrypt
ksiega.php ----------------
-----------------------------ksiega.php ---------------<!doctype html> <html> <head> <meta charset="utf-8" /> <style> body {width:600px; background:khaki; border-left: 1px dotted marron; border-right: 1px dotted marron; padding: 20px; margin:auto; } input, textarea { border-radius: 10px} input[type=text] { background: orange} span {color:red; font-weight:bold} </style> <!-- w szarym bloku poniżej jest sprawdzenie czy wypełniono formularz przed wysłaniem: --> <script> window.onload = function() { document.forms[0].addEventListener("submit",sprawdz); } function sprawdz(e) { var f = document.forms[0]; var ok = true; for (var i=0; i<f.length-1; i++) if (f.elements[i].value=="") { ok=false; break;} if (!ok) { alert("wypełnij porządnie formularz!!!"); e.preventDefault(); } } // usun ok, return </script> </head> <body> <h3>Księga gości</h3> <form action="zapisz.php" method="POST" > Ksywa <input type="text" name="ksywa" /> <br /> Twoja opinia<br /> <textarea name="opinia" rows="6" cols="50"> </textarea> <br /> <input type="submit" value="wyślij" /> </form> <?php $w = file("wpisy.txt"); echo "Dotychczasowe wpisy: <br />"; for ($i=count($w)-1; $i>=0; $i--) { // czyta wszystkie linie pliku do tablicy // wyświetlaj od ostatniego, najnowszego wpisu // echo $w[$i]."<br />"; // to wyświetli wpis „brzydko”, jako jeden ciąg znaków $x = explode("|",$w[$i]);// to rozbije pojedynczy wpis na elementy oddzielone przez | echo "Autor: <span>$x[0]</span>, data: $x[1], ip = $x[2] <br/> "; echo $x[3]; echo "<hr />"; } ?> </body> </html> ------------------------zapisz.php ---------------<?php $ksywa = $_POST["ksywa"]; $opinia = $_POST["opinia"]; // w szarym bloku poniżej jest cenzura wpisu: $ksywa = trim($ksywa); // usunie spacje z początku i końca ksywy if (strlen($ksywa)==0) $ksywa = "Gość"; // jeśli ksywa jest pusta, to będzie „Gość” // usunie spacje z początku i końca opinii $opinia = trim($opinia); $opinia = strip_tags($opinia); // usunie znaczniki html z opinii // aby nie było w niej linków do żadnych trefnych stron $opinia = str_replace("kurwa","k*a",$opinia); // zastąpi jedno słowo drugim // drugi ciąg znaków może być znacznikiem obrazka $opinia = str_replace(":)","<img src='smile.gif'/>",$opinia); // rozbija opinię na pojedyncze słowa // i sprawdza czy żadne słowo nie przekracza 20 znaków foreach ($slowa as $s) // aby wpis nie zepsuł nam formatowania szerokości strony if (strlen($s)>20) { echo "za długie słowa!!!<br />"; exit; } $slowa = explode(" ",$opinia); $czas = date("d-m-Y H:i:s"); $ip = $_SERVER["REMOTE_ADDR"]; // dołącza do wpisu bieżącą datę // oraz IP z którego przyszedł wpis $z = $ksywa."|".$czas."|".$ip."|".$opinia.PHP_EOL; $f = fopen("wpisy.txt","a"); flock($f,2); fwrite($f,$z); flock($f,3); fclose($f); // łączy elementy wpisu // strumień $f połączony z plikiem na serwerze // blokada odczytu pliku // zapis zmiennej $z do strumienia $f // zdjecie blokadyz pliku // zamknięcie strumienia $f echo "thx za wpis<br />"; echo "<a href='ksiega.php'> Powrót </a>"; // link powrotny do księgi gości ?> ZałóŜ plik tekstowy wpisy.txt i nadaj wszystkim uprawnienia do zapisu.