Jak tworzyć strony internetowe PHP(cz2)?
W dalszej części kursu, chciałbym zaprezentować działanie instrukcji warunkowych if i ciasteczek. Dlatego też zmodyfikujemy nasz licznik. W naszym liczniku występuje problem, ponieważ zlicza on każde wejście na naszą stronę. Zróbmy teraz tak, aby nasz licznik zliczał tylko unikalne wejścia.
Na początek radziłbym zapoznać się z tym co to są ciasteczka(http://pl.wikibooks.org/wiki/PHP/Obs%C5%82uga_ciastek).
Co to jest instrukcja warunkowa if.
Otóż na schemacie wygląda to tak:
if(warunek){
kod wykonywalny
}
else{
kod wykonywalny w przypadku nie spełnienia warunku
}
Tłumacz na język zrozumiały każdemu można tłumaczyć to w ten sposób.
Jeżeli (to zostanie spełnione){
to wykonaj to co jest pomiędzy tymi klamrami
}
inaczej{
wykonaj to co jest pomiędzy tymi klamrami
}
Jeżeli już się z tym zapoznaliście. Podam kilka przydatnych funkcji które będą wykorzystane w następnych krokach.
setcookie(nazwa_ciasteczka, czas przez jaki będzie ono funkcjonowało
funkcja ta pozwala nam utworzyć ciasteczko
$_COOKIE[nazwa_ciasteczka]
Jest to ciasteczko które zawiera odpowiednie dane
isset(wartość)
Sprawdza czy np. dana zmienna, ciasteczko istnieje
!
Wykrzynik w php służy po prostu do negacji jeżeli napiszemy w kodzie np. !isset(wartość) to kompilator będzie sprawdzał czy dana zmienna NIE istnieje
To po zapoznaniu się z tymi wartościami zmodyfikujmy nieco nasz licznik. Na samym początku sprawdźmy czy już zostało utworzone ciasteczko.
Pod liniką $otworz = fread($plik,1000 Dodajmy
if(!isset($_COOKIE['wizyta'])){
setcookie('wizyta', time(), time() + 30 * 86400
i zamknięcie klamry umieście pod liniką
$otworz++;
Tak jak to jest zaprezentowane na listingu 2.0
Aby sprawdzić czy działa proszę wejść na stronę (127.0.0.1/licznik). I odświeżać jeżeli liczba stoi w miejscu i po wyczyszczeniu ciasteczek z przeglądarki(wyczyść dane przeglądarki), liczba wam podskoczy o 1 w górę to gratulacje. Stworzyliście licznik, który zlicza unikalne odwiedziny.
Uwagi i spostrzeżenia
- •W razie pytań proszę pisać komentarze, postaram się odpowiedzieć.
Dodaj komentarz