Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sonda
Forum PHP.pl > Forum > Gotowe rozwiązania
snooky
Jak zrobić w sondzie aby mozna bylo oddawać tylko jeden glos, skrypt sondy zawart jest w trzech plikach
pierwszy index
  1. <?php
  2. <form onsubmit=&#092;"window.open('add_user.php','gate','toolbar=no,scrollbars=no,directories=no,status=no,menubar=no,resizable=no,width=
  3. 00,height=300')\" method=\"POST\" action=\"glosuj.php\" target=gate >
  4. <font><center><b>Których tapet powinno być więcej?</b></center>
  5. <input type=\"hidden\" name=\"id\" value=\"115821\">
  6. <input type=\"hidden\" name=\"uid\" value=\"95782\">
  7. <div style=\"margin-left:10px\">
  8. <input type=radio name=sonda value=1 checked>Krajobrazy<br>
  9. <input type=radio name=sonda value=2>Motoryzacja<br>
  10. <input type=radio name=sonda value=3>Kosmos<br>
  11. <input type=radio name=sonda value=4>Zabytki<br>
  12. <input type=radio name=sonda value=5>Zwierzęta<br></div>
  13. <center><input type=submit value=\"Głosuj\" class=submit><br>
  14. <a href=wyniki_sondy.php target=gate2 onClick=\"window.open('add_user.php','gate2','toolbar=no,scrollbars=no,directories=no,status=no,menubar=no,resizable=no,width=
  15. 00,height=300')\">Zobacz wyniki</a>
  16. ?>

drugi glosuj
  1. <?php
  2. $licn=fopen(&#092;"$sonda.txt\",\"r+\");
  3. $pob=intval(fgets($licn,32));
  4. fclose($licn);
  5. $licn=fopen(&#092;"$sonda.txt\",\"w\");
  6. $x=intval(1);
  7. $viz=$pob + $x;
  8. fputs($licn,$viz);
  9. ?>
  10. <html><head><title>x</title></head>
  11. <body>
  12. <script language=javascript>
  13. window.location.href=\"wyniki_sondy.php\"
  14. </script>

trzeci wyniki_sondy
  1. <?
  2. $dl=80;
  3. $w1=fopen(&#092;"1.txt\",\"r+\");
  4. $war1=intval(fgets($w1,32));
  5. $w2=fopen(&#092;"2.txt\",\"r+\");
  6. $war2=intval(fgets($w2,32));
  7. $w3=fopen(&#092;"3.txt\",\"r+\");
  8. $war3=intval(fgets($w3,32));
  9. $w4=fopen(&#092;"4.txt\",\"r+\");
  10. $war4=intval(fgets($w4,32));
  11. $w5=fopen(&#092;"5.txt\",\"r+\");
  12. $war5=intval(fgets($w5,32));
  13.  
  14. $x=$war1 + $war2 + $war3 + $war4 + $war5;
  15. if ($x==&#092;"0\"){
  16. $wy1=1;
  17. $wy2=1;
  18. $wy3=1;
  19. $wy4=1;
  20. $wy5=1;
  21.  
  22. $wyp1=0;
  23. $wyp2=0;
  24. $wyp3=0;
  25. $wyp4=0;
  26. $wyp5=0;
  27. }
  28. else {
  29. $wy1=ceil($war1 / $x * $dl);
  30. $wy2=ceil($war2 / $x * $dl);
  31. $wy3=ceil($war3 / $x * $dl);
  32. $wy4=ceil($war4 / $x * $dl);
  33. $wy5=ceil($war5 / $x * $dl);
  34.  
  35. $wyp1=ceil($war1 / $x * 100);
  36. $wyp2=ceil($war2 / $x * 100);
  37. $wyp3=ceil($war3 / $x * 100);
  38. $wyp4=ceil($war4 / $x * 100);
  39. $wyp5=ceil($war5 / $x * 100);
  40. }
  41.  
  42. echo &#092;"<center><font>Głosów łącznie: <b>$x</b></center> <br>
  43.  
  44. <div align=left style=&#092;"margin-left:50px\">
  45. <img src=grafika/son.jpg height=20 width=$wy1><br><font><b>Bardzo dobrze</b>, Głosów: <b>$war1 </b>($wyp1%)<br>
  46. <img src=grafika/son.jpg height=20 width=$wy2><br><font><b>Dobrze</b>, Głosów: <b>$war2 </b>($wyp2%)<br>
  47. <img src=grafika/son.jpg height=20 width=$wy3><br><font><b>Dostatecznie</b>, Głosów: <b>$war3 </b>($wyp3%)<br>
  48. <img src=grafika/son.jpg height=20 width=$wy4><br><font><b>Miernie</b>, Głosów: <b>$war4 </b>($wyp4%)<br>
  49. <img src=grafika/son.jpg height=20 width=$wy5><br><font><b>Bardzo źle</b>, Głosów: <b>$war5 </b>($wyp5%)<br>
  50.  
  51.  
  52. &#092;";
  53. ?>
mike
Użyj ciasteczek.
Jeżeli ktoś juz zagłosował to ustaw mu ciacho wtedy jak będzie chciał jeszcze raz zagłosowac to sprawdzasz czy ma ciacho, jak ma to piszesz: "juz głosowałeś", jeżeli nie ma to dodajesz głos.
setcookie()
yeti
Proponuję ustwaić ciacho i zmienną sesji, niektórzy mają zablokowane ciacha i wtedy zablokujesz podwójne głosowanie przynajmniej na czas sesji.
Najki
Można też na numer IP, ale gorzej jak koleś nie ma zew. IP i blokujesz cała sieć smile.gif. Neo+ też problemowo :/.
Alek
Wiele, żeczy można u ciebie w kodzie zmienić na bardziej eleganckie, np:

zamiast:
$wy1=1;
$wy2=1;
$wy3=1;
$wy4=1;
$wy5=1;

mozna napisac:
$wy1 = $wy2 = $wy3 = $wy4 = $wy5 =1;

lub jeszcze lepiej:
for ($i=0;$i<=5;$i++) $wy[]=1;

smile.gif
SoulRipper
skoro mowa o blokowaniu ip to ja mam pytanie:
gdy juz pobiore ip i che sprawdzic i wyswietlic od kogo ma neta.
czyli jezeli ip ma 83.29.***.*** wtedy skrypt wyswietli 'masz internet dzieki neozdradzie'
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.