Wortal Webmastera - źródło informacji dla tworzących strony www |  e-marketing / programowanie / webdesign / narzędzia          powered by CubeMatic.com

 

  WEBMASTERS    SKRYPTY

Strona glówna
HTML
JavaScript
PHP
CGI
MYSQL
CSS
SSI
WML
SGML
Offline
Photoshop
PHP
CGI
ASP
JavaScript

Artykuly

FORUM

  NARZEDZIA      SYSTEM

Grafika
Szablony
Czcionki
Porady

Download

  e-BIZNES

Artykuly
Linki
Profesjonalna strona
Nasza oferta
E-booki
Tanie strony www Warszawa

  NIEZBEDNIK

Za darmo
Kasa
Rejestrator www
Aktualności
Domeny
Konwerter ISO

  INNE

DOS
O stronie
Ksiega gości
Kontakt

Zgloś bląd!

 Polecamy:
 śmieszne zdjecia
 Hiszpanski Warszawa


Szukaj pliku



 SERWIS  

Prosta księga gości oparta na plikach

Stwórzmy więc na początek odpowiednie dokumenty:

index.php - strona główna księgi, jeśli chcemy, możemy ją nazwać także księga.php, aby nie robić zbytniego bałaganu na stronie 
dodaj.php - w pliku tym napiszemy skrypt do dodawania wpisów do pliku wpisy.php 
wpisy.php - tam będziemy zapisywać wpisy 
W pliku index.php wpisujemy tylko jedno polecenie PHP:

<? include "wpisy.php" ?> 
Spowoduje to włączenie pliku wpisy.php tam, gdzie mają się pojawiać wpisy. Poniżej należy także stworzyć formularz, przez który użytkownicy będą mogli dodać swój własny wpis.

<FORM action="dodaj.php" method="POST">
Twój nick: <INPUT type="text" name="nick"><BR>
Twój e-mail: <INPUT type="text" name="email"><BR>
Treść wpisu: <BR>
<TEXTAREA name="tresc" rows=5 cols=50><</TEXTAREA>
<BR><BR>
<INPUT type="submit" value=". ok ">
</FORM>

Oczywiście nic nie stoi na przeszkodzie zmienić wygląd tego formularza. Wystarczy tylko pamiętać o zachowaniu nazewnictwa pól, gdyż będzie ono wykorzystywane jako zmienne ("<INPUT {...} name="nazwa">") oraz pliku, do którego ma się odwołać formularz ("<FORM action="">").

Zapisujemy i zamykamy plik i rozpoczynamy edycję pliku dodaj.php

Na samym początku warto sprawdzić, czy użytkownik aby na pewno wysłał dane przez formularz. Wpisujemy więc:

<?

if($REQUEST_METHOD != "POST") {
echo "Dane muszą zostać wysłane przez formularz!";
exit;

Z początku ustalmy może szablon pojedynczego wpisu. Dopisujemy więc do pliku dodaj.php:

$szablon = "<A href=\"mailto:%s\">%s</a> twierdzi, że<BR>%s"; 
Później tylko sformatujemy ten szablon przy użyciu funkcji sprintf().

Teraz trzeba skopiować plik z wpisami do pliku tymczasowego - tmp.php. Dodajemy kolejną linię:

copy("wpisy.php", "tmp.php"); 
Teraz otwieramy plik "wpisy.php" a odpowiednim argumentem, zamazującym poprzednią zawartość pliku ("w"). Bez obawy jednak, nie stracimy zawartości pliku, przecież skopiowaliśmy jego zawartość do pliku tymczasowego.

$handle = fopen("wpisy.php", "w"); 
Teraz trzeba dopisać na początek nowy wpis. Pamiętamy o szablonie - wystarczy tylko wypełnić go odopwiednimi wartociami.

$wpis = sprintf($szablon, $email, $nick, $tresc); 
Pierwszy argument to zmienna z szablonem. Kolejne zmienne to wartości "%s" Koniecznie pamiętajcie o ich kolejnośći!

Teraz zapisujemy te dane przy użyciu funkcji fwrite(). Jako argumenty podajemy uchwyt pliku (tu: $handle) oraz zawartość do dopisania (tu: $wpis).

fwrite($handle, $wpis); 
Teraz możemy zamknąć uchwyt poleceniem fclose(). Jako argument podajemy zmienną z uchwytem - $handle:

fclose($handle); 
Teraz należy dopisać poprzednie wpisy na koniec obecnego pliku. Pamiętajmy, iż mamy je zapisane w pliku tmp.php.

Otwieramy więc plik tmp.php do odczytu (argument 'r'):

$handle_tmp = fopen("tmp.php", "r"); 
Teraz zastosujemy pętle, która będzie wykonywana dopóki nie odnaleziony zostanie koniec pliku w uchwycie $handle_tmp. 

while(!feof($handle_tmp)) {
$zaw = fgets($handle_tmp, 4096);

$dodaj_wpisy .= $zaw;

Jak już z pewnością zauważyliście pętla ta wykonuje kilka rzeczy - przy pomocy funkcji fgets() pobiera 4 kb KB pliku $handle_tmp oraz dopisuje na koniec pliku $dodaj_wpisy te właśnie 4 kb. 

Teraz można skasować ten plik tymczasowy przy użyciu funkcji unlink()

unlink("tmp.php"); 
Ostatnim etapem pracy na plikach będzie dopisanie na koniec pliku wpisy.php zmiennej, a dokładniej wartości zmiennej $dodaj_wpisy. Otwieramy więc ten plik, tym razem z argumentem 'a', aby PHP dopisało dane na końcu pliku.

$_handle = fopen("wpisy.php", "a");
fwrite($_handle, $dodaj_wpisy);
fclose($_handle);

Tutaj już chyba nie trzeba nic tłumaczyć - jest to podobny kod do tego na początku.

I praktycznie teraz wszystko jest gotowe. Warto jednak zrobić taki ciekawy bajerek, aby użytkownik został automatycznie przekierowany do księgi z jego wpisem (czyli odpada stosowanie JavaScriptu, gdyż cofnie nas do strony, jednak nie będzie widocznego najnowszego wpisu). Zastosujemy tutaj funkcję header(). Dopisujemy na końcu pliku:

Header("Location: index.php"); 
Dzięki temu automatycznie czytelnicy zostaną przeniesieni do pliku index.php

Aha. Na systemach rodziny UNIX konieczne jest nadanie odpowiednich praw odpowiednim folderom/plikom. Można to zrobić np. w Windows Commander, zaznaczając odpowiedni plik, wybierając File -> Change Attributes i zaznaczając Read oraz Write dla każdej grupy.

Kod źródłowy można pobrać tu. Możecie spokojnie jej używac u siebie, pamiętajcie jednak o odpowiednim wyglądzie tej strony.


Kamil Szmyd

<== WSTECZ =

R E K L A M A

^top^