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.