|
Wielu z was zadaje często pytania, jak zacząć, z czym to się
je, itp. Wiele kursów jednak najpierw pokazuje teorie i na koniec ewentualnie
jakiś przykład i nie wielu może z was to zrozumieć. Postaram się wam opisać
jak zacząć i jak napisać porządny skrypt w PHP oparty na plikach. Napisze
jak zrobić księge gości, która nie wymaga bazy danych. Do tego jeszcze pokaże
jak stworzyć skrypt, który wyświetla z jakich hostów i z jakich IP się
łączono, skrypt ten działa na podobnej zasadzie. Zacznijmy od księgi. Będziemy
musieli utworzyć 5 plików:
index.php - główna strona, gdzie będziemy includować wpisy.
wpisy.php - plik, który będzie wyświetlał wpisy i będzie
includowany na strone główną
dodaj_wpis.php - formularz, dzięki któremu będziemy dodawać wpisy
dodany.php - plik, który będzie zapisywał nasze dane
dane.txt - plik, który będzie przechowywał nasze dane
Wpisy będą zawierać:
-
Nick
-
Miasto
-
Komóra
-
Gadu Gadu
-
E-mail
-
WWW
-
IP
-
wpis
Plik: index.php
<html>
<head>
<title>Księga Gości Siteql.net</title>
</head>
<body>
<p align=center>
<a href=dodaj_wpis.php>DODAJ WPIS</a>
<?
include "wpisy.php";
?>
<a href=dodaj_wpis.php>DODAJ WPIS</a>
</p>
</body>
</html>
Najważniejszą częścią tej strony jest funkcja include, która
"wczytuje" nam plik wpisy.php w danym miejscu. Reszta może być
dowolna.
Plik: wpisy.php
<?
$dane=file("dane.txt");
for($i=0; $i<count($dane); $i++)
{
$wiersz=explode("||", $dane[$i]);
echo "<table border=0 cellpadding=0 cellspacing=0 style=border-collapse:
collapse width=582 height=120>
<tr>
<td width=100>$wiersz[0]</td>
<td width=229 rowspan=6 valign=top>$wiersz[6]</td>
</tr>
<tr>
<td width=100>$wiersz[1]</td>
</tr>
<tr>
<td width=100>$wiersz[2]</td>
</tr>
<tr>
<td width=100><a href=gg:$wiersz[3]>$wiersz[3]</a></td>
</tr>
<tr>
<td width=100><a href=mailto:$wiersz[4]>$wiersz[4]</a></td>
</tr>
<tr>
<td width=100><a href=http://$wiersz[5] target=_blank>$wiersz[5]</a></td>
</tr>
<tr>
<td width=100 colspan=2>$wiersz[7]</td>
</tr>
</table>";
}
?>
Tutaj mamy nasz cały skrypt, który jest odpowiedzialny za wyświetlanie wpisów.
Pobieramy dane z pliku tekstowego i wyświetlamy je. Połączenie HTML'a i PHP.
Plik: dodaj_wpis.php
<html>
<head>
<title>Dodaj wpis</title>
</head>
<body>
<form method=post action=dodany.php>
Nick:<input type=text name=nick><br>
Miasto:<input type=text name=miasto><br>
Komórka:<input type=text name=komora><br>
Gadu-Gadu:<input type=text name=gg><br>
E-mail:<input type=text name=mail><br>
WWW: http://<input type=text name=www><br>
Wpis:<textarea name=wpis rows=6 cols=60></textarea><br>
<input type=submit value=Dodaj> <input type=reset value=Wyczyść></form>
</body>
</html>
To zwykły formularz który przesyła zmienne, można go równie dobrze zrobić
w html'u. Wysyłamy nasze zmienne, które mają być zapisany w pliku.
Plik: dodany.php
<META HTTP-EQUIV="Refresh" CONTENT="3;
URL=index.php">
<?
$ip = $REMOTE_ADDR;
$file=fopen("dane.txt", "a");
fwrite($file, "$nick||$miasto||$komora||$gg||$mail||$www||$wpis||$ip
\n");
fclose($file);
echo "Wpis został dodany!";
?>
Tutaj zapisujemy dane do pliku dane.txt. Oraz odświeżamy, żeby
przenieść użytkownika na stronę główną po upływie 3 sekund. Na koniec w pliku dane.txt ustawiamy prawa CHMOD 777, żeby wszystko działało
i koniec. powinniśmy księgę jeszcze ładnie podlinkować czyli porobić
poszczególne linki, ale to już według gustu. Teraz skrypt, który będzie
zapisywał logi na naszej stronie. Stworzymy trzy pliki.
index.php - przykładowo strona główna serwisu, gdzie będą się
rejestrować logi.
logi.php - strona na której będziemy wyświetlac logi.
dane.txt - plik, w którym będziemy przechowywać logi.
Zaczniemy od utworzenia pliku, który będzie zapisywał IP i host.
Plik: index.php
<?
$ip = $REMOTE_ADDR;
$host = GetHostByAddr($ip);
$file=fopen("dane.txt", "a");
fwrite($file, "$ip||$host \n");
fclose($file);
?>
<html>
<head>
<title>Strona główna serwisu</title>
</head>
<body>
Tutaj zawartość
</body>
</html>
W tym pliku pobieramy ip i host odwiedzającego. I zapisujemy go do pliku
dane.txt, bardzo podobnie jak w poprzednim przykładzie. Teraz nadszedł czas
na wyświetlanie danych z pliku dane.txt, co już było w poprzednim przykładzie.
Plik: logi.php
<?
$dane=file("dane.txt");
for($i=0; $i<count($dane); $i++)
{
$wiersz=explode("||", $dane[$i]);
echo "$wiersz[0] [------] $wiersz[1] <br>";
}
?>
Tutaj podobnie jak w pierwszym przykładzie odczytujemy dane. Jeżeli chciałbyś
poznać ciekawsze możliwości zapisu do plików to zapraszam tutaj.
Macie tam objaśnione funkcje, których używamy do zapisywania plików. Aby
przetestować ten drugi przykład, utwórz plik dane.txt i ustaw CHMOD 777.
Autor: Marcin
Makałowski
Dodano: 29.01.2003
|