![]() |
![]() ![]()
Autor artykułu: mgr Jerzy Wałaszek |
©2016 mgr
Jerzy Wałaszek
|
Na dzisiejszych zajęciach utworzymy w PHP proste narzędzie do zbierania
opinii od użytkowników. Wykorzystamy formularz oraz proste skrypty PHP,
które będą zbierały głosy od użytkowników i prezentowały wyniki w sposób
graficzny. Wyniki głosowania będą przechowywane w pliku na serwerze.
Zanim rozpoczniemy, wyczyść katalog C:\wamp\www. Następnie zapisz w nim
poniższy obrazek:
Nie zmieniaj nazwy obrazka, niech zostanie pool.gif. Uruchom Notatnik Windows i utwórz w nim 5 wierszy zawierających cyfrę 0: 0 0 0 0 0 Plik zapisz w katalogu C:\wamp\www pod nazwą cnt.txt. Będziemy w nim zliczać oddane w ankiecie głosy. |
||||||||||||||||||||||
Uruchom MS Expression Web 4 i pod kierunkiem nauczyciela
utwórz formularz z 5 opcjami:
We własnościach formularza ustaw:
Plik zapisz w katalogu C:\wamp\www pod nazwą index.html. |
||||||||||||||||||||||
Otwórz w MS Expression Web 4 nowy plik PHP. W
sekcji <body> utwórz skrypt PHP:
Plik zapisz w katalogu C:\wamp\www pod nazwą pool.php |
||||||||||||||||||||||
Otwórz w MS Expression Web 4 nowy plik PHP. W
sekcji <body> utwórz skrypt PHP:
Plik zapisz w katalogu C:\wamp\www pod nazwą show.php |
||||||||||||||||||||||
Podsumowanie
Uwaga: podane tutaj rozwiązanie nie jest bezpieczne. W rzeczywistych warunkach należałoby dodatkowo zablokować dostęp do pliku na czas jego przetwarzania w skrypcie. Inaczej głosy mogą być źle zliczane (gdy np. zagłosuje jednocześnie kilku użytkowników). Zagadnienie jest nieco skomplikowane, dlatego zostało tutaj pominięte. Jeśli interesuje cię to, poszukaj informacji o funkcji flock(). Aplikacja nie sprawdza także, czy dany użytkownik głosował tylko jeden raz. Aby to zrobić należałoby zapamiętywać w pliku na dysku adresy IP, skąd nadszedł formularz, i sprawdzać, czy dany adres IP jest nowy (wyniki głosowania dopisujemy do ankiety tylko dla nowych adresów IP). Nie jest to proste, dlatego to zagadnienie również pominięto. (Dla zdolnych) Gdybyś jednak był bardzo zainteresowany tym zagadnieniem, to przeanalizuj poniższy skrypt (sam go stosuję w tym serwisie do statystyki odwiedzin):
Gdy umieścisz ten skrypt na swojej stronie, to w zmiennej $adres_ip znajdzie się numer IP komputera użytkownika, który pobiera tę stronę z serwera (pamiętaj, że skrypt PHP jest uruchamiany przez serwer zanim strona zostanie wysłana do sieci). Spróbuj wykorzystać to w swojej aplikacji. Otrzymany numer IP należy porównać z numerami IP przechowywanymi w pliku, a jeśli jest nowy, to należy go dopisać na końcu tego pliku i przetworzyć ankietę. Jeśli numer IP już jest w pliku, to aplikacja nie powinna podejmować działań, ewentualnie można wypisać tekst "Już głosowałeś". |
![]() | I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe