Trucs et astuces Express - L'aide informatique au bout des doigts!

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Sondage php/mysql
h2ck3r
posté 04-10-2005 - 5:37
Message #1


Membre


Groupe : Membres
Messages : 101
Inscrit : 30-07-2005
Lieu : Hyeres, var (en France)
Membre n° 7 358



Salut a tous! voila, j'ai créer une page de sondage... (elle marche parfaitement)
J'ai toutefois un probleme... Je ne veux pas que quelq'un puisse voter plusieurs fois...
Je voudrais qu'un mesage s'affiche et dise : "tu as deja voté, vote ignoré" si le mec déja voté, et que sa ne prenne pas en compte son vote...

Voila le code la page
CODE
<HTML>
<HEAD>
<TITLE>Sondage</TITLE>
<style type="text/css">
.text {text-decoration:none; color:#FFFFFF; font-family:arial; font-size:10pt}
.erreur {text-decoration:none; color:red; font-family:arial; font-size:10pt}
body,td,th {
    color: #000000;
}
body {
    background-color: #F0F1F0;
}
.Style2 {text-decoration: none; color: #000000; font-family: arial; font-size: 10pt; }
.Style3 {color: #000000}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
<BODY>
<center>
<?
require("./conf.php3");

// CONNEXION MYSQL
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}

// récupération des données
$excellente1=@mysql_query("select max(excellente) from sondage");
$excellente=@mysql_result($excellente1,0,"max(excellente)");

$bonne1=@mysql_query("select max(bonne) from sondage");
$bonne=@mysql_result($bonne1,0,"max(bonne)");

$moyenne1=@mysql_query("select max(moyenne) from sondage");
$moyenne=@mysql_result($moyenne1,0,"max(moyenne)");

if ($sondef) {
    switch($sondage){
 case "excellente";
 $new_vote=$excellente+1;
 @mysql_query("INSERT INTO sondage(excellente,bonne,moyenne) VALUES('$new_vote','$bonne','$moyenne')") or die("<p align='center' class='erreur'>Impossible d'enregistrer les données");
 break;
 case "bonne";
 $new_vote=$bonne+1;
 @mysql_query("INSERT INTO sondage(excellente,bonne,moyenne) VALUES('$excellente','$new_vote','$moyenne')") or die("<p align='center' class='erreur'>Impossible d'enregistrer les données");
 break;
 case "moyenne";
 $new_vote=$moyenne+1;
 @mysql_query("INSERT INTO sondage(excellente,bonne,moyenne) VALUES('$excellente','$bonne','$new_vote')") or die("<p align='center' class='erreur'>Impossible d'enregistrer les données");
 break;
 }
}

$excellente1=@mysql_query("select max(excellente) from sondage");
$excellente=@mysql_result($excellente1,0,"max(excellente)");

$bonne1=@mysql_query("select max(bonne) from sondage");
$bonne=@mysql_result($bonne1,0,"max(bonne)");

$moyenne1=@mysql_query("select max(moyenne) from sondage");
$moyenne=@mysql_result($moyenne1,0,"max(moyenne)");

 
// DECONNEXION MYSQL    
mysql_close($db_link);


$nbr_total_vote=$excellente+$bonne+$moyenne+$bof;
$expour=substr(($excellente*100)/$nbr_total_vote,0,4);
$bopour=substr(($bonne*100)/$nbr_total_vote,0,4);
$mopour=substr(($moyenne*100)/$nbr_total_vote,0,4);
?>
<form method="POST" action="vote.php">
<TABLE BORDER=0 WIDTH=200>
    <tr>
 <Td WIDTH="100%" COLSPAN=0 ALIGN="center" BGCOLOR=#F0F1F0 CLASS="text"><p class="Style3">Quelle Pixel Gallery pr&eacute;f&egrave;res-tu? </p>
    <p class="Style3">&nbsp;</p></td>
    </tr>
    <tr>
<!-- case a cocher -->
 <TD bgcolor="#F0F1F0" CLASS="Style2"><input type="radio" name="sondage" value="excellente">      Pixel Gallery Loup <BR>          <? echo($expour)?>% : <IMG SRC="barre.gif" BORDER=0 WIDTH=<? echo($expour)?> HEIGHT=10> (<? echo($excellente)?> votes)         </td>
    </tr>
    <tr>
 <td bgcolor="#F0F1F0" CLASS="text Style3"><input name="sondage" type="radio" value="bonne">  
   Pixel Gallery Etienne <BR>
    <? echo($bopour)?>% : <IMG SRC="barre.gif" BORDER=0 WIDTH=<? echo($bopour)?> HEIGHT=10> (<? echo($bonne)?> votes)
 </td>
    </tr>
    <tr>
 <td bgcolor="#F0F1F0" CLASS="Style2"><input name="sondage" type="radio" value="moyenne">      
  Pixel Gallery Loup / Etienne <BR>
    <? echo($mopour)?>% : <IMG SRC="barre.gif" BORDER=0 WIDTH=<? echo($mopour)?> HEIGHT=10> (<? echo($moyenne)?> votes)
</td>
    </tr>
</table>
<p><INPUT TYPE="submit" VALUE="Envoyer" NAME="sondef" STYLE="font-family: Arial; font-size: 10pt; letter-spacing: 2pt; font-weight: bold">
</form>
</center>
</BODY>
</HTML>


--------------------
My Webpage

I'm not here to wreak havoc... it's right
Go to the top of the page
 
+Quote Post
Webmaster
posté 04-10-2005 - 18:18
Message #2


Administrateur


Groupe : Administrateurs
Messages : 7 353
Inscrit : 21-09-2001
Lieu : Granby, Québec
Membre n° 1



Les cookies sont tes amis mon cher.


--------------------
Pensez à lire les règlements avant de poster!
Québec own! On se laissera pas faire STI!
Go to the top of the page
 
+Quote Post
h2ck3r
posté 05-10-2005 - 8:49
Message #3


Membre


Groupe : Membres
Messages : 101
Inscrit : 30-07-2005
Lieu : Hyeres, var (en France)
Membre n° 7 358



Oui, merci, mais je n'ai pas réussi... peux tu me dire comment faire?


--------------------
My Webpage

I'm not here to wreak havoc... it's right
Go to the top of the page
 
+Quote Post
Helger
posté 05-10-2005 - 11:36
Message #4


Modérateur


Groupe : Modérateurs
Messages : 4 997
Inscrit : 18-01-2005
Lieu : Gaule
Membre n° 5 492



Hello.
Sur les cookies ? Mais si ils sont effacés par l'utilisateur, rien ne l'empèchera de voter de nouveau, non ?
Pourquoi ne pas se baser sur le user ? blink.gif


--------------------
Go to the top of the page
 
+Quote Post
h2ck3r
posté 05-10-2005 - 11:46
Message #5


Membre


Groupe : Membres
Messages : 101
Inscrit : 30-07-2005
Lieu : Hyeres, var (en France)
Membre n° 7 358



Effectivement... je n'y avais pas pensé. On peux aussi esayer de l'empecher de voter une 2nd fois, grace a son I.P... Mais la, je ne sais toujours pas faire... Quelqu'un peux il m'aidé?


--------------------
My Webpage

I'm not here to wreak havoc... it's right
Go to the top of the page
 
+Quote Post
Helger
posté 05-10-2005 - 11:56
Message #6


Modérateur


Groupe : Modérateurs
Messages : 4 997
Inscrit : 18-01-2005
Lieu : Gaule
Membre n° 5 492



Hello.
L'adresse IP, tu l'oublies car ce n'est pas un adresse fixe. (Renouvellement par déconnexion du modem ou par le FAI, donc nouvelle adresse IP. Et pour peu, tu empècherais le vote à des users qui n'ont jamais voté et qui ont récupérer l'adresse IP d'un autre user.).
Hum, il faut que dans ta bdd, tu renseignes le user qui a voté. Après, il n'y a plus qu'à tester.

Pour le code, je laisse la place à Weby car, pour ma part, zéro pointé. icon_wink.gif


--------------------
Go to the top of the page
 
+Quote Post
h2ck3r
posté 05-10-2005 - 12:02
Message #7


Membre


Groupe : Membres
Messages : 101
Inscrit : 30-07-2005
Lieu : Hyeres, var (en France)
Membre n° 7 358



Ok, c'est vrai, que c'est la misere pour l'autre user, qui pourait la récupérée... Pour le code, on va esayer avec les cookies, meme si il suffit de les supprimer, je pense que c'est le moyen, le plus sympe, et celui qui prend le moins de temps, et en meme temps, il me faut pas un truc super expérimenté... Merci beaucoup quand meme!
Esque tu pourrait me faire un ptit code Weby? Sa serait supe sympa... a + les gens! kiss


--------------------
My Webpage

I'm not here to wreak havoc... it's right
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 

RSS Version bas débit Nous sommes le : 07-09-2008 - 2:16
annuaire