Jak stworzyć ankietę (sondę),y można było oddać tylko jeden głos lub określoną ilość głosów


[PHP] Jak stworzyć ankietę (sondę), aby można było oddać tylko jeden głos lub określoną ilość głosów?

0x01 graphic

Potrzebujesz uruchomić prostą ankietę, która pozwoli na oddawanie głosów przez użytkowników. Ankieta ma być zabezpieczona przed wielokrotnym głosowaniem. Mało tego - chcesz regulować ile razy może zagłosować każdy użytkownik.

0x01 graphic

Jeżeli masz już przygotowane pytanie i kilka odpowiedzi, wpisz je do poniższego skryptu i czekaj, aż użytkownicy będą oddawać swoje głosy. Ankieta lub sonda to przydatny element każdego serwisu, pozwala bowiem zapoznać się z preferencjami i opiniami użytkowników.

<?

$pyt="Ile godzin ma doba?";

$odp[]="nie wiem";

$odp[]="dokładnie 24";

$odp[]="pewnie 12...";

$glosowan=1;

$pl="ip.txt";

$ip = $_SERVER["REMOTE_ADDR"];

$o=$_GET["o"];

$ile=count($odp);

$f = fopen($pl, "r");

$plik = fread($f, filesize($pl));

fclose($f);

preg_match_all("/$ip/i", $plik, $glos);

if (($o>-1)and($o<$ile)and(count($glos[0])<$glosowan)) {

$f=fopen($pl,"a");

fputs($f,"<$o>$ip"); fclose($f);

$plik .= "<$o>";

}

echo $pyt;

for ($i=0;$i<$ile;$i++) {

preg_match_all("/<$i>/i", $plik, $li);

$wynik ="[". count($li[0]) ."]";

echo "<br>$wynik <a href=\"index.php?o=$i\">$odp[$i]</a>";

}

?>

Cały skrypt został wizualnie podzielony na cztery części. W pierwszej umieszczasz pytanie i dowolną ilość odpowiedzi. Dla zmiennej $glosowan podajesz ile razy użytkownik może głosować. Czasem zachodzi konieczność oddania kilku głosów, np. przy wyborze trzech ulubionych książek. Zmienna $pl określa nazwę i ścieżkę do pliku, który będzie przechowywał odpowiedzi i numery IP głosujących.

Kolejna część skryptu liczy ile jest odpowiedzi do wyboru i pobiera zawartość pliku z odpowiedziami. Plik musi być na serwerze udostępniony do zapisywania dla każdego (chmod 666).

Następnie sprawdzane jest IP użytkownika - jeżeli znajduje się już w pliku, nie ma on możliwości oddania kolejnego głosu (chyba, że zezwolisz mu na wielokrotne głosowanie). Jeżeli liczba głosów oddanych jest mniejsza niż liczba określająca ile razy może zagłosować, a numer odpowiedzi zawiera się w ilości odpowiedzi, głos uznany jest za ważny i dopisujemy go do pliku w postaci <X>XXX.XXX.XXX.XXX i do wcześniej pobranej zawartości pliku.

Teraz pozostaje wyświetlić pytanie, poszczególne odpowiedzi i policzyć ile razy dana odpowiedź występuje w pliku. I już - mamy wyśmienicie działającą ankietę.

Modyfikując bazowy kod można pokazywać procenty zamiast liczb, a nawet pasek graficzny. Nic nie stoi na przeszkodzie, aby wynik był widoczny dopiero po oddaniu głosu, a nie od razu. Ankietę można otoczyć ramką lub dodać jej guziki z formularza zamiast linków. Ankieta wykorzystuje blokadę numeru IP co wystarcza w większości zastosowań, ale można też dodać blokadę cookies, jeżeli jest taka potrzeba.



Wyszukiwarka

Podobne podstrony:
Jak stworzyć oferte której nie można się oprzeć
Jak stworzyć OFERTĘ której nie można się oprzeć
„TRĄBILI I ŚPIEWALI, TAK IŻ SŁYCHAĆ BYŁO TYLKO JEDEN GŁOS WYSŁAWIAJĄCY MAJESTAT PANA” – CZYLI ROZWAŻ
Jak stworzyć formularz, który zapisze?ne do pliku tekstowego,?y potem jego zawartość dołączyć
Jak stworzyć formularz z okienkiem kontaktowym, z którego można wysłać e mail?z przeładowania strony
SPOSOB JAK PRZEROBIC DZWONKI MP3 ZEBY MOZNA JE BYLO SLUCHAC NA SIEMENS C75
Jak stworzyc skuteczna strone W Nieznany
Jak stworzyć najniezwyklejszy i niezapomniany Marketing swojego życia
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak stworzyc system identyfikacji wizualnej firmy
Jak stworzyć własną stronę WWW
Jak stworzyć prezentację maturalną z języka polskiego
Jak stworzyć własną stronę startową
Jak stworzyć indeks pierwszych liter dla wybranej kolumny z tabeli, PHP Skrypty
Jak stworzyć bibliografię, kosmetyka(1)
Jak stworzyć skuteczny system zarządzania zasobami ludzkimi

więcej podobnych podstron