FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Paramétrage cookie sur système de vote
 

Paramétrage cookie sur système de vote

Il y a 338 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Paramétrage cookie sur système de vote
 
Plus d'informations

Bonjour,
 
 
 
j'ai un système de vote en place (trouvé sur http://www.asp-php.net/scripts/asp-php/vote.php) que j'ai adapté pour mon site, il est très bien par contre il crée un cookie qui empêche de voter plusieurs fois, le vote étant destiné aux enfants je souhaiterais les laisser voter autant de fois qu'ils le souhaitent. je mets le code de ma page ci-dessous, si quelqu'un a une idée de ce que je dois changer merci de m'en faire part :-). J'ai bien entendu essayer de modifier moi-même le code mais je n'arrive pas au résultat voulu.
 
 
 
 
 
 
 

Code :
  1. <html>
  2. <head>
  3. <title>Votez pour votre affiche pr&eacute;f&eacute;r&eacute;e</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="JavaScript">
  6. <!--
  7. function Retour (fichier,w,h) {
  8.     ff=window.open(fichier,"new","toolbar=no,scrollbars=no,left=340,top=100,resizable=no" ); if(ff) { ff.focus();ff.resizeTo(650,570) }
  9. }
  10. //-->
  11. </script>
  12. </head>
  13. <body bgcolor="#b3dc10" text="#000000">
  14. <table width="300" border="0" cellspacing="0" cellpadding="0" height="52">
  15.   <tr>
  16.     <td width="300" height="32">
  17.       <div align="center"><img src="Concours.gif" width="162" height="32"></div>
  18.     </td>
  19.   </tr>
  20.   <tr>
  21.     <td width="300" height="20">
  22.       <div align="center"><img src="Votez.gif" width="247" height="20"></div>
  23.     </td>
  24.   </tr>
  25. </table>
  26. <p>
  27.   <%@LANGUAGE="VBSCRIPT"%>
  28. </p>
  29. <table width="300" border="0" cellspacing="0" cellpadding="0" height="328">
  30.   <tr>
  31.     <td width="300" valign="top">
  32.       <!--#include file="../../../../db/Connections/VoteBDD.asp" -->
  33.       <%
  34. SQL = "SELECT TOP 1 * FROM Questions " & _
  35.     "ORDER BY VoteDate DESC"
  36. RSQuestions.open SQL, Conn, 3, 3
  37. ' on ne selectionne que le dernier sondage entré (top 1)
  38. VoteID = RSQuestions("VoteID" )
  39. ' on récupère l'ID du sondage, que l'on placera dans     un cookie
  40. VoteQuestion = RSQuestions("VoteQuestion" )
  41. ' on récupère la question du sondage en cours
  42. ' --------------- Validation du formulaire ---------------
  43. ' si le formulaire est validé, on prepare la mise à jour de la table...
  44. If Request.QueryString("valide" ) = "true" then
  45.       SQL = "UPDATE Reponses " & _
  46.      "SET Compteur = Compteur + 1 " & _
  47.      "WHERE VoteOptionID= " & _
  48.      Request.QueryString("choix" ) & ";"
  49. If Int(Request.Cookies("VoteCookie" )("VoteID" )) <> VoteID then
  50. ' si le visiteur n'avait pas encore donné son avis pour ce vote... et on execute...
  51.    Conn.Execute SQL
  52.    Response.Cookies("VoteCookie" ).Expires = Now() + 7
  53.    'on autorise 1 vote tout les now() + x jours, à définir selon vos besoins
  54.    Response.Cookies("VoteCookie" )("VoteID" ) = VoteID
  55.    Response.write " Le vote est validé. Merci!"
  56.  
  57. End if
  58. End if
  59. ' ------------ Fin de validation du formulaire -----------
  60. SQL = "SELECT * FROM Reponses " & _
  61.        "WHERE VoteID = " & VoteID
  62. set RSReponses = Server.CreateObject("ADODB.Recordset" )
  63. RSReponses.Open SQL, Conn, 3, 3
  64. ' on extrait les réponses possibles pour ce sondage
  65. Total = 0
  66. While Not RSReponses.EOF
  67. ' on récupère le nombre de réponses totales données pour ce sondage
  68.    Total = Total +  RSReponses("Compteur" )
  69.    RSReponses.MoveNext
  70. Wend
  71. RSReponses.MoveFirst
  72. ' on se replace sur le 1er enregistrement
  73. If Request.QueryString("voir" ) = "true" OR Request.QueryString("valide" ) = "true" _
  74.    OR cInt(Request.Cookies("VoteCookie" )("VoteID" )) = VoteID then           
  75.     ' --------------- Affichage des resultats ---------------
  76.     ' si on a voté, déjà voté, ou demandé les résultats
  77.    
  78.     ' protection "Dépassement de capacité" d'un entier
  79.     ' si l'on affiche les résultats et que personne n'a encore voté
  80.    
  81.     If Total = 0 then
  82.     Response.write "Aucun vote !"
  83.     Else
  84.      ' création de la table HTML
  85.     %>
  86.       <br>
  87.       <table width="302">
  88.         <tr>
  89.           <td colspan="3"> <%=VoteQuestion%> <br>
  90.           </td>
  91.         </tr>
  92.         <% while not RSReponses.EOF
  93.     pVotes = (RSReponses("Compteur" ) / Total) * 100
  94.     ' pourcentage = (réponses pour la question / total réponses données) * 100
  95.     %>
  96.         <tr>
  97.           <td width="44"><%=RSReponses("VoteOption" )%></td>
  98.           <td width='14'><img src='/Marches/voteASP/vote.gif' height='5' width='<%=Round(pVotes,0)%>'></td>
  99.           <td width="228"><%=Round(pVotes,1)%> %</td>
  100.         </tr>
  101.         <% RSReponses.movenext : wend
  102.     'on boucle sur les réponses en sortant leur désignation
  103.     ' le pourcentage de vote arrondi et une barre graphique
  104.     %>
  105.       </table>
  106.       <br>
  107.       <% Response.write Total & " votes ont été effectués" : End If %>
  108.       <% Else 
  109.     ' --------------- Affichage du formulaire ---------------
  110.     ' si le visiteur n'a pas encore voté
  111. %>
  112.       <table width="302" align="center">
  113.         <form name="poll" action="vote.asp?voir=true" method="get">
  114.           <tr>
  115.             <td colspan="3"> <%=VoteQuestion%> </td>
  116.           </tr>
  117.           <% while not RSReponses.EOF
  118.     ' on boucle sur les réponses, cette fois-ci dans un formulaire
  119.     ' sous forme de bouton radio
  120.     %>
  121.           <tr>
  122.             <td width="176"><%=RSReponses("VoteOption" )%></td>
  123.             <td width="114">
  124.               <input type="radio" name="choix" value="<%=RSReponses("VoteOptionID" )%>">
  125.             </td>
  126.           </tr>
  127.           <% RSReponses.movenext : wend %>
  128.           <tr>
  129.             <td colspan="2">
  130.               <p align="center"><br>
  131.                 <input type="submit" value="Voter!" name="submit">
  132.                 <input type="hidden" name="valide" value="true">
  133.                 <br>
  134.                 <a href="vote.asp?voir=true">Voir les résultats</a> </p>
  135.             </td>
  136.           </tr>
  137.         </form>
  138.       </table>
  139.       <div align="center">
  140.         <% End if %>
  141.         <br>
  142.         <a href='JavaScript:Retour("concours.html" )'><font face="Comic Sans MS, Verdana, Arial" size="2">Retourner
  143.         sur le site des 10 ans !</font></a></div>
  144.     </td>
  145.   </tr>
  146.   <tr>
  147.     <td width="300">&nbsp;</td>
  148.   </tr>
  149. </table>
  150. </body>
  151. </html>


Message édité par fred1254 le 03-04-2008 à 09:13:23
Oracle
Plus d'informations

Utilise les balises [cpp][/cpp] pour encadrer les lignes de code STP, c'est illisible là :)

 

Mais, par rapport au fonctionnement du script, il ne t'affiche les résultats que si tu as déjà voté. Si tu permets donc de voter plusieurs fois, tu risques de ne jamais avoir les résultats affichés.


Message édité par Ducktale le 03-04-2008 à 08:45:04

---------------
[:ducktale:6]
Plus d'informations

Comment je peux faire alors .?

Oracle
Plus d'informations

Ben soit tu modifies le script pour qu'il t'affiche le formulaire et les résultats dans deux blocs différents, soit tu utilises un script différent :)


---------------
[:ducktale:6]

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Paramétrage cookie sur système de vote
 

Annonces Google
Produits relatifs
Publicité