480 PHP i MySQL dla każdego
Nazwy poszczególnych opcji z danej ankiety są natomiast pobierane za pomocą instrukcji:
SELECT Id, Opcja FROM AnkietyOpcje WHERE Ankietald=$ankietald
Dane zwrócone przez to zapytanie są pobierane w pętli whi 1 e i wykorzystywane jako elementy formularza, zgodnie z przedstawionym wyżej schematem. Zmienna checked pozwala na ustawienie argumentu checked w pierwszym polu input typu radio. Funkcja showPol 1 zwraca wartość true, jeśli wykonanie wszystkich operacji zakończyło się sukcesem, lub wartość fal se, jeśli nie udało się wykonać którejś operacji na bazie danych.
Napiszemy poniżej dwa skrypty: ankiety.php i ankieta, php. Pierwszy z nich będzie odpowiedzialny za wyświetlanie listy dostępnych ankiet oraz odnośników umożliwiających oddawanie głosów. Drugi będzie się zajmował rejestracją głosów. Zaczniemy od skryptu ankiety.php. Odnośnik do niego należy umieścić na stronie głównej, tak aby każdy użytkownik (niezależnie od tego, czy jest załogowany czy nie) miał do niego dostęp.
To zadaniem skryptu będzie rozpoznanie, czy wywołujący go użytkownik jest załogowany, czy nie i, w zależności od tego, wyświetlenie odpowiedniej treści. Będzie on również rozpoznawał, w których ankietach załogowany użytkownik już brał udział. Na rysunku 18.1 został przedstawiony przykładowy wygląd strony generowanej przez ten skrypt. Załogowany jest użytkownik o nazwie Administrator, który brał już udział w drugiej ankiecie. Na rysunku 18.2 jest natomiast przedstawiony wygląd strony, która będzie wyświetlana po wywołaniu skryptu przez niezalogowanego użytkownika. Pełna treść skryptu ankiety.php jest z kolei widoczna na listingu 18.2.
Pft Edycia Bele* Pnel# £eHo*i tł»redae Romce |
JSl*J © | |
^ ^ f-T bttpi/ibcałiost/anWety.php |
d © * lici | |
* A”**™ ""w*-: : L **«■*> |
Ankiety
Jesteś załogowany jako Administrator. Możesz oddawać glosy Przysługuje Ci jeden głos w jednej ankiecie. Dostępne ankiety
He pamięci RAM ma Twój komputer? Zagłosuj w tei ankiecie Zobacz wyniki tci ankiety
Jakiej wielkości HDD jest zamontowany w Twoim komputerze? Twój głos jest juz zarejestrowany! Zobacz wyniki tei ankiety Jakiego używasz systemu operacyjnego? Zagłosuj w tei ankiecie Zobacz wyniki tci ankiety
Pokaż wyniki wszystkich ankiet
Rysunek 18.1. Lista ankiet generowana dla załogowanego użytkownika
Listing 18.2. Treść pliku ankiety.php_
<?php
session_start();
include "ankiety_functions.php"