[PHP] Jak stworzyć prostą księgę gości?
Chcesz uatrakcyjnić swoją stronę i dodać prostą księgę gości, która pozwoli zostawić wpisy i opinie użytkowników. To bardzo fajna i przydatna rzecz, która pozwala przekonać się, co o stronie sądzą odwiedzający.
Księgę gości można stworzyć w kilkunastu linijkach kodu i tylko od Ciebie zależy jak będzie się ona prezentować na stronie. Oto cały kod, wystarczy go skopiować do pliku index.php i prosta księga gości gotowa:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head><meta http-equiv="content-type"
content="text/html; charset=iso-8859-2">
<title>Księga gości</title></head><body>
<form action="index.php" method="post">
<input name="imie" type="text" value="imie">
<br><input name="email" type="text" value="e-mail">
<br><input name="www" type="text" value="http://">
<br><textarea name="wpis" rows="3" cols="30">wpis</textarea>
<br><input type=submit value=" dodaj! ">
</form>
<?
$ksiega = "ksiega.txt";
$imie=$_POST["imie"];
$email=$_POST["email"];
$www=$_POST["www"];
$wpis=$_POST["wpis"];
if (strlen($wpis)>5) {
$f=fopen($ksiega,"a");
$rekord="`$imie`$email`$www`$wpis`";
$rekord=ereg_replace(10," ",$rekord);
$rekord=ereg_replace(13," ",$rekord);
fputs($f,"$rekord\n"); fclose($f);
}
$wpisy=file($ksiega);
$wpisy=array_reverse($wpisy);
$ile=count($wpisy);
for ($i=0;$i<$ile;$i++) {
$wpis = explode("`",$wpisy[$i]);
echo "<p>$wpis[1] - $wpis[2] - $wpis[3]<br>$wpis[4]<p>";
}
?>
</body></html>
Gdy skopiujesz kod do pliku index.php pamiętaj, aby tym samym katalogu umieścić plik ksiega.txt udostępniony do zapisywania dla każdego (chmod 666), ponieważ w nim będą przechowywane wpisy.
Całość składa się z trzech sekcji - formularza, skryptu dodającego wpis do pliku i skryptu wyświetlającego zawartość księgi gości.
Formularz będzie widoczny zawsze na górze. Jeżeli użytkownik go wypełni, sprawdzamy czy długość wpisu przekracza 5 znaków (strlen($wpis)>5). Jeżeli nie, to nic się nie dzieje, jeżeli jest dłuższy niż 5 znaków to poszczególne pola są odpowiednio formatowane i dopisywane do pliku ksiega.txt.
Przed dopisaniem do pliku trzeba wyciąć z dokonanego wpisu znaki przejścia do nowej linii (kody ASCII 10 i 13). W jednej linijce pliku ma się znaleźć jeden wpis z polami oddzielonymi znakami "`" i nie może tam być przejść do nowej linii.
Kolejny fragment odpowiada za wypisanie na ekran zawartości księgi gości. Pobieramy plik, odwracamy jego kolejność tak, aby na początku pojawiły się najnowsze wpisy i następnie linijka po linijce czytamy całość. Każdy wpis rozbijany jest na pola (imie, email, www, wpis - tutaj jako $wpis[1], $wpis[2], $wpis[3] i $wpis[4]), które są wypisywane na ekran.
Teraz trzeba taki skrypt dostosować do własnych potrzeb. Można pogrubić imie i nazwisko, adres e-mail zrobić klikalny, dodać jakieś kolory, ramki, tło strony. Nie bój się eksperymentować i uzupełniać skrypt o kolejne opcje.
Tak mogą wyglądać wpisy po dodaniu aktywnych linków i pogrubienia:
echo "<p><b>$wpis[1]</b> -
<a href=\"mailto:$wpis[2]\">$wpis[2]</a> -
<a href=\"$wpis[3]\" target=_blank>$wpis[3]</a>
<br>$wpis[4]<p>";