Witam!
Niedawno znalazłem znakomitą sondę wszystko było by ok gdyby tylko była blokada że jeżeli ktoś już oddał głos nie może zrobić tego ponownie w ciągu jednego dnia. I dlatego występuję do was z pytaniem czy może wiecie jak zrobić taką blokadę?
Poniżej prezentuje skrypty sondy:
Index.php
Jak Ci Się Podoba Nasza Strona?
Jest Super
Może Być
Jest Beznadziejna
[/code]
Glosuj.php
[code]<?php /*Początek interpretowanego bloku */ $plik = fopen(“wyniki.txt”, “r”); /*otwarcie do odczytu pliku z wynikami*/ $dane = fread($plik, filesize(“wyniki.txt”)); /*odczytanie z pliku z wynikami danych i zapisanie ich do zmiennej $dane odczytanych zostanie tylko tyle znaków ile istnieje w pliku, nie mniej, nie więcej*/ $wyniki = split(":", $dane); /*wydzielenie dwóch wyników, rozdzielenie zawartości zmiennej po znaku dwukropka*/ fclose($plik); /*zamknięcie pliku*/ if($_POST[‘glos’] == 1) $wyniki[0] += 1; /*jeśli użytkownik głosował “za” marchewką, czyli zmienna “glos” ma wartość jeden to do wyników za dopisywany jest jeden głos*/ else if ($_POST[‘glos’] == 2) $wyniki[1] += 1; /*analogiczna operacja do poprzedniej, ale dodawany jest głos “przeciw”*/ else ; /*instrukcja dla reszty przypadków, które teoretycznie nie powinny nastąpić*/ $plik = fopen(“wyniki.txt”, “w”); /*ponowne otwarcie pliku z wynikami, tym razem do zapisu, plik jest wyzerowany*/ flock($plik, 2); /*zablokowanie pliku przed innymi skryptami, które będą chciały zapisywać*/ fwrite($plik, “$wyniki[0]:$wyniki[1]:”, 200); /*zapis wyników do pliku, 200 znaków z powodzeniem wystarczy*/ flock($plik, 3); /*zdjęcie blokady z pliku*/ fclose($plik); /*zamknięcie pliku*/ header(“Location: pokaz.php”); /*przekierowanie przeglądarki do pliku pokaz.php*/ ?> /*koniec interpretowanego bloku*/
Pokaz.php
<?php
$plik = fopen("wyniki.txt", "r");
/*otwarcie pliku z wynikami do odczytu*/
$dane = fread($plik, filesize("wyniki.txt"));
/*odczytanie wszystkich bajtów z pliku*/
fclose($plik);
/*zamknięcie pliku*/
$wyniki = split(":", $dane);
/*rozdzielenie wyników*/
$suma = $wyniki[0] + $wyniki[1];
/*zsumowanie wyników*/
?>
| Jest Super: | <?php echo(round($wyniki[0]/$suma * 100)); /*wyświetlenie zaokrąglonej procentowej ilości głosów, znak procenta jest w następnej linijce*/ ?> % | |
| Może Być: | ?php echo(round($wyniki[1]/$suma * 100)); ? % | |
| Jest Beznadziejna: | ?php echo(round($wyniki[1]/$suma * 100)); ? % | |
Ogołem oddano głosów: ?php echo($suma); ?[/code]
Blokada ma być na 24 godziny.