Rozdział 18. ♦ System zbierania opinii 483
W przypadku gdy skrypt zostanie wywołany przez załogowanego użytkownika, dodatkowo wyświetlany jest odnośnik umożliwiający oddanie głosu lub też informacja, że głos został już oddany. Odnośnik pozwalający na wyświetlenie ankiety, tak aby można było w niej oddać głos, ma postać:
<a href="ankieta.php?action=showpoll&ankietaId“$row[0]">Zaglosuj w tej ankiecie</a>
Jest to zatem, podobnie jak w poprzednim przypadku, odwołanie do skryptu ankieta.php, któremu zostają przekazane dwa parametry: pierwszy o nazwie acti on i wartości showpol 1 oraz drugi o nazwie ankieta Id i wartości wskazującej identyfikator ankiety. Za stwierdzenie, czy załogowany użytkownik brał już udział w danej ankiecie — a zatem czy ma być wyświetlony odnośnik, czy jedynie informacja tekstowa — odpowiada omówiona już funkcja al redyVoted.
Za listą ankiet jest wyświetlany odnośnik, który pozwala na wyświetlenie wyników wszystkich ankiet. Ma on taką samą postać, jak odnośnik wyświetlający wyniki pojedynczej ankiety. Jedynie parametr ankieta Id ma w tym przypadku wartość 0. Na samym końcu kodu znajduje się odnośnik pozwalający na powrót do strony głównej.
Za obsługę oddawanych głosów oraz wyświetlanie treści i wyników poszczególnych ankiet odpowiada skrypt umieszczony w pliku ankieta.php. Jego treść została zaprezentowana na listingu 18.3. Kod rozpoczyna się od wywołania funkcji session_start oraz wczytania zawartości pliku ankietyJunctions.php. Dalej znajduje się nagłówek strony HTML oraz następna część kodu PHP.
Listing 18.3. Treść skryptu ankieta.php
<?php
session_start():
include "ankiety_functions.php":
<html>
<head>
<meta http-equiv="Content-Type" content-"text/html: charset=iso-8859-2"> <ti 11e>Ank i ety</ti 11e>
</head>
<body>
<?php
i f(i sSet($_GET[1acti on']) && isSet($_GET['ankietaId,])){ i f (makeDBConnecti onO) {
1f($_GET['action'] == 'showpoll'){ i f(!showPol1($_GET['anki etaId'])) { echo("<p align-'center’>8rak ankiety o podanym numerze.</p>"):
else if($ GET['action'] == 'showresults'){ i f($_GET[’ankletald'] = 0){ showAl 1 Pol 1sResults():
}
else{
i f(!showPol1Results($_GET['ank i etaId'])){ echo("<p align-'center’>Brak ankiety o podanym numerze.</p>"):