Spis treści
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.
Księga gości obejmuje trzy podstwaowe etapy:
trim(tekst)
- usuwa tzw. "białe znaki" z tekstu.
stripslashes(tekst)
htmlspecialchars(tekst)
- konwertuje znaki specjalne na encje HTML.Przykłady:
znak | zmieniony na: |
---|---|
& (ampersand) |
& |
" (cudzysłów) |
" |
' (apostrof) |
' lub '
|
< (mniejszy) |
< |
> (większy) |
> |
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>.
$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.
Utworzenie nowego konta umożliwia wprowadzenie danych użytkownika i dopisanie ich do pliku loginy.dat
Kod tworzący formularz:
Przy zapisie do bazy musimy zadbać, aby hasło użytkownika było zaszyfrowane.
W tym celu stosujemy funkcję sha1(teskt)
.
Kod:
Po dodaniu rekordu plik danych może wyglądać następująco:
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:
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:
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:
Po dodaniu konta z awatarem rekord w plik danych przedstawiaja się następująco:
Oddzielone symbolem | występują tu kolejno:
Tworzymy formularz, w którym użytkownik wprowadza login i hasło oraz ma możliwość utworzenia konta.
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
Kod: (wiersze 5 i 6)
$loginy = "loginy.txt";
$plik = file_get_contents($loginy);
$plik
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 ...}
$_SESSION['nick'] = $_POST["nick"];
- zapamiętanie nazwy użytkownika w zmiennej sesji
header("Location: index.php");
- przekierowanie do głównego pliku index.php