Przykłady

Licznik odwiedzin

Skrypt przedstawia licznik odwiedzin strony.
Dane przechowywane są w pliku count.dat umieszczonym w katalogu głównym strony.
Jeśli plik taki nie istnieje jest tworzony przez skrypt.

Niedoskonałością skryptu jest zwiększenie wartości licznika przy każdym odświeżeniu strony.
Problem ten zostanie rozwiązany przy omówieniu "ciasteczek" lub sesji.

licznik odwiedzin

Księga gości

Księga gości obejmuje trzy podstwaowe etapy:

  1. Utworzenie formularza do dodania wpisu. księga gości - formularz
  2. Zapis danych z formularza.
    Przykładowy skrypt: księga gości - skrypt Pojawiły się tu trzy nowe funkcje tekstowe:
    •  trim(tekst) - usuwa tzw. "białe znaki" z tekstu.
    •  stripslashes(tekst)
      dodaje odwrotny ukośnik do znaków specjalnych (apostrof, cudzysłów, ukośnik, itp) w celu ich wyświetlenia:
      • \' - staje się -> '
      • \" - staje się -> "
      • \\ - staje się -> \
    •  htmlspecialchars(tekst) - konwertuje znaki specjalne na encje HTML.
      Zapobiega to wprowadzeniu kodu PHP, HTML, itp. do naszego formularza.

      Przykłady:

      znak zmieniony na:
      & (ampersand) &
      " (cudzysłów) "
      ' (apostrof) ' lub '
      < (mniejszy) &lt;
      > (większy) &gt;
    Po konwersji wprowadzonych tekstów następuje "dopisanie" do istniejącego pliku (tryb otwarcia pliku "a").
    Funkcje przy zapisie:
    •  strlen(tekst) - zwraca długość tekstu.
    •  empty(tekst) - sprawdza, czy tekstu nie jest pusty.
    •  nl2br(tekst) - konwertuje znaki końca linii \n na znacznik HTML <br>.
    Zapis: $rekord = "$imie|".nl2br( $wpis )."\n"; łączy w jeden rekord nazwę użytkownika i treść wpisu dodając znak rozdzielający "|", który posłuży do oddzielania nazwy i wpisu przy wyświetlaniu.
  3. Wyświetlenie istniejących wpisów.
    Przykładowy skrypt: księga gości - wyświetlanie wpisów

Tworzenie konta

Utworzenie nowego konta umożliwia wprowadzenie danych użytkownika i dopisanie ich do pliku loginy.dat

tworzenie konta - widok

Kod tworzący formularz: tworzenie konta - formularz

Przy zapisie do bazy musimy zadbać, aby hasło użytkownika było zaszyfrowane.
W tym celu stosujemy funkcję sha1(teskt).

Kod: tworzenie konta - dopisz

Po dodaniu rekordu plik danych może wyglądać następująco: tworzenie konta - plik danych

Tworzenie konta z awatarem

Do poprzednio napisanego skryptu tworzenia konta dodamy mechanizm przesyłania pliku graficznego, czyli dodanie awatara do naszego konta.

Formularz zostanie rozbudowany o pola:

    <input type="hidden" name="MAX_FILE_SIZE" value="512000">
    <label for="plik">awatar (jpg, max 512kB)</label>
    <input type="file" name="awatar" id="plik">    

Co w widoku formularza wygląda następująco: tworzenie konta - widok

Po wysłaniu formularza na serwer przesyłany jest, wybrany z naszego komputera, plik.
Szczegóły dotyczące przesyłania plików umieściłem pod adresem: https://rrogacz.pl/php-pliki-upload

Po modyfikacji formularza musimy stworzyć skrypt PHP sprawdzający i kopiujący przesłany plik.

Podobnie jak w przypadku formularza modyfikujemy poprzedni kod dodając obsługę przesyłania plików.

Różnice, w stosunku do poprzedniego kodu, zaznaczyłem na rysunku: tworzenie konta - widok

Dołączanie pliku wykonywane jest poleceniem include(plik);.
Ten sposób pozwala na wielokrotne wykorzystanie kodu i zwiększenie czytelności kodu głównego.

Funkcje zawarte w pliku funkcje.php przedstawiają się następująco: tworzenie konta - widok

Po dodaniu konta z awatarem rekord w plik danych przedstawiaja się następująco: tworzenie konta - widok

Oddzielone symbolem | występują tu kolejno:

  • nazwa użytkownika
  • zaszyfrowane hasło
  • nazwa pliku zawierającego awatar

Logowanie do księgi gości

  1. Tworzymy formularz, w którym użytkownik wprowadza login i hasło oraz ma możliwość utworzenia konta. formularz logowania

  2. Na początku pliku dodajemy kod sprawdzający poprawność wprowadzonych danych logowania.
    Koniecznie musimy to umieścić na początku pliku
    session_start() odczytuje identyfikator sesji poprawność logowania

  3. Kod: (wiersze 5 i 6)

        $loginy = "loginy.txt";
        $plik = file_get_contents($loginy); 
    
    odczytuje całą zawatrość pliku tu: loginy.txt i podstawia do zmiennej tekstowej $plik

  4. W instrukcji warunkowej (wiersz 7) zastosowana została funkcja strpos(string, substring), która sprawdza istnienie podłałcucha w łańcuchu.
    Jeśli takowy występuje zwracana jest pozycja pierwszego znaku, jeśli nie ma wartość FALSE.

    UWAGA:
    Jeśli podłańcuch jest początkiem łańcucha zwrócona zostanie wartość 0 (zero), w wyniku czego instrukcja if potraktuje to jako false, czyli jakby podłańcucha nie było w łańcuchu.
    Musimy tu zastosować porównanie jednoznaczności, czyli jeśli strpos NIE ZWRACA false podłańcuch istnieje w łańcuchu.
    przykład:
    if(strpos($string, $substring) !== false) {... instrukcje dla istniejącego podłańcucha ...}

  5. Wiersze kodu, linia 8 oraz 9
    • $_SESSION['nick'] = $_POST["nick"]; - zapamiętanie nazwy użytkownika w zmiennej sesji
    • header("Location: index.php"); - przekierowanie do głównego pliku index.php
Projekt i wykonanie: Ryszard Rogacz© 1999−2025