Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ustawienie cookies w sondzie
Forum PHP.pl > Forum > Przedszkole
zmarcin
dry.gif
Mam skrypt, który umożliwia głosowanie. Chciałbym jednak ustawić ciacho, powiedzmy na 1 godzine i 25 minut, aby nie można było szybko nabijać głosów. Jak to uzyskać?

Poniżej pliki wykorzystywane w sondzie (nie są mojego autorstwa - jestem słaby w temacie php sadsmiley02.gif ):


pytanie.php:

<HTML>
...

<TABLE cellSpacing=0 cellPadding=0 width=209 bgColor=#ffffff border=0><TBODY>

<TR>
<TD WIDTH=209 BACKGROUND=../grafika/dk.jpg CLASS=pollquestion>

<CENTER><P CLASS=lewemenu><B><FONT COLOR="000000">MOJA SONDA:</FONT></B></P></CENTER>
<DIV ALIGN=left>
<FORM NAME=sonda ACTION="glosuj.php" METHOD=post TARGET=pollpopup>


<B> &nbsp Czy Polska awansuje do piłkarskich MŚ 2006 w Niemczech?
</B>
</A>

</TD>
</TR>



<TR>
<TD WIDTH=209 HEIGHT=7 BACKGROUND=../grafika/dk.jpg>
</TD>
</TR>





<TR>
<TD WIDTH=209 BACKGROUND="../grafika/dk.jpg" CLASS=pollanswer>

<DIV style="line-height:0.9">


<input CHECKED type="radio" name="pollAnswer" value="1"><B>Tak</B>

<br>

<input type="radio" name="pollAnswer" value="2"><B>Nie</B>

<br>
<BR>

&nbsp&nbsp&nbsp&nbsp<INPUT TYPE=image hspace=0 src="../grafika/zaglosuj.png" border=0 ALT="ZAGŁOSUJ">
&nbsp
|
&nbsp
<A CLASS=rightsection HREF="wyniki.php" TARGET=_blank>
<IMG SRC=../grafika/wyniki.png BORDER=0 ALT="Wyniki bierzacej sondy"></A>
</CENTER>
</DIV>

</FORM>
</TD>
</TR>
</TABLE>
</TBODY>
</BODY>
</HTML>



plik glosuj.php:

<HTML>
<HEAD>
</HEAD>
<BODY>


<?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['pollAnswer'] == 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['pollAnswer'] == 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: wyniki.php");
/*przekierowanie przeglądarki do pliku wyniki.php*/

?>
/*koniec interpretowanego bloku*/


</BODY>
</HTML>

i wreszcie wyniki.php:

<HTML>
<HEAD>
</HEAD>
<BODY BACKGROUND=../grafika/dk.jpg>

<B>
Czy Polska awansuje do piłkarskich M&brvbar; 2006 w Niemczech?
</B>


<?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*/

?>

<table>
<tbody>

<tr><td>Tak:</td><td>
<?php
echo(round($wyniki[0]/$suma * 100));
/*wyświetlenie zaokrąglonej procentowej ilości głosów,
znak procenta jest w następnej linijce*/

?>
%</td><td>

(
<?php
echo($wyniki[0]);
?>
)

<img src="../grafika/dot.jpg" alt="../grafika/dot.jpg"
title="Tak" height="10" width="
<?php
echo(round($wyniki[0]/$suma * 100));
/*podobnie jak wcześniej, tyle, że wyświetlona liczba będzie
szerokością graficznego paska, w tym wypadku liczba 100 jest
maksymalną szerokością paska */


?>
">
</td></tr>

<tr><td>Nie:</td><td>
<?php
echo(round($wyniki[1]/$suma * 100));
?>
%</td><td>

(
<?php
echo($wyniki[1]);
?>
)

<img src="../grafika/dot.jpg" alt="../grafika/dot.jpg"
title="Nie" height="10" width="
<?php
echo(round($wyniki[1]/$suma * 100));
?>
" /></td></tr>

</tbody>
</table>
<p>Ogołem oddano głosów: <?php echo($suma); ?>.</p>
</BODY>
</HTML>
_Mateo
Kolega zacznie używać w przyslosci tagow od php... A tam gdzie masz fragment dodawania głosu, daj sobie warunek
  1. <?php
  2.  
  3. ob_start(); //to na samym poczatlku strony
  4.  
  5. if(!isset($_COOKIE['glosowal'])) 
  6. {
  7. setcookie('glosowal', 1, time()+5100);
  8. //tutaj dajesz kod co ma dodac glos
  9. }
  10.  
  11. else 
  12. {
  13. echo 'glosowales oszuscie!!!!';
  14. }
  15. ?>
Ociu
  1. <HTML>
  2. <HEAD>
  3. </HEAD>
  4. <BODY>
  5.  
  6.  
  7. <?php
  8. /*Początek interpretowanego bloku */
  9.  
  10. $plik = fopen(&#092;"wyniki.txt\", \"r\");
  11. /*otwarcie do odczytu pliku z wynikami*/
  12.  
  13. $dane = fread($plik, filesize(&#092;"wyniki.txt\"));
  14. /*odczytanie z pliku z wynikami danych i zapisanie ich do
  15. zmiennej $dane odczytanych zostanie tylko tyle znaków ile
  16. istnieje w pliku, nie mniej, nie więcej*/
  17.  
  18. $wyniki = split(&#092;":\", $dane);
  19. /*wydzielenie dwóch wyników, rozdzielenie zawartości zmiennej
  20. po znaku dwukropka*/
  21.  
  22. fclose($plik);
  23. /*zamknięcie pliku*/
  24.  
  25. if($_POST['pollAnswer'] == 1)
  26. $wyniki[0] += 1;
  27. /*jeśli użytkownik głosował \"za\" marchewką,
  28. czyli zmienna \"glos\" ma wartość jeden to do
  29. wyników za dopisywany jest jeden głos*/
  30.  
  31. else if ($_POST['pollAnswer'] == 2)
  32. $wyniki[1] += 1;
  33. /*analogiczna operacja do poprzedniej, ale dodawany jest
  34. głos \"przeciw\"*/
  35.  
  36. else
  37. ;
  38. /*instrukcja dla reszty przypadków, które teoretycznie nie
  39. powinny nastąpić*/
  40.  
  41. if(isSet($_COOKIE['glos'])) die();
  42. # or mozesz dac jakis text w die.
  43.  
  44. $plik = fopen(&#092;"wyniki.txt\", \"w\");
  45. /*ponowne otwarcie pliku z wynikami, tym razem do zapisu, plik
  46. jest wyzerowany*/
  47.  
  48. flock($plik, 2);
  49. /*zablokowanie pliku przed innymi skryptami, które będą chciały
  50. zapisywać*/
  51.  
  52. fwrite($plik, &#092;"$wyniki[0]:$wyniki[1]:\", 200);
  53. /*zapis wyników do pliku, 200 znaków z powodzeniem wystarczy*/
  54.  
  55. flock($plik, 3);
  56. /*zdjęcie blokady z pliku*/
  57.  
  58. fclose($plik);
  59. /*zamknięcie pliku*/
  60.  
  61. setcookie('glos', true, time()+5100);
  62. # dodanie ciacha
  63.  
  64. header(&#092;"Location: wyniki.php\");
  65. /*przekierowanie przeglądarki do pliku wyniki.php*/
  66.  
  67. ?>
  68. /*koniec interpretowanego bloku*/
  69.  
  70.  
  71. </BODY>
  72. </HTML>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.