Rechercher : dans
Par :

Systeme de vote php/mysql

Dernière réponse le 30 jun 2009 à 09:28:47 JEJEOS, le 12 nov 2008 à 18:10:02 
 Signaler ce message aux modérateurs

Bonjour,

Sur mon site, je souhaiterais mettre en place un système de vote.

Je souhaiterais donc savoir si quelqu'un connaitrai un script php, pour que lorsqu'une personne clique sur un bouton, on additionne 1 à la colonne "vote" de ma base de donnée mysql.

Dans la même optique, comment empêcher une personne de voter plusieurs fois ?
J'avais penser retenir son ip, puis vérifier s'il a déjà voter. Est-ce possible, si oui comment faire ?

Merci de me répondre,

Cordialement,

Jérome

1

giheller, le 12 nov 2008 à 18:34:49

Bonsoir,
il y a beaucoup de sites qui propose des sondages en ligne. et cela peut se subsituer à votre soucis.
Il est possible de faire une recherche sur ce thème. JL,  m'enfin c'est juste mon avis @+,

Répondre à giheller

2

JEJEOS, le 12 nov 2008 à 19:16:40

Je ne cherche pas vraiment a faire un sondage je souhaiterais savoir si quelqu'un connaitrait un script php qui permettrait de dire à la base de donnée d'additionner 1 à la valeur déjà présente dans la case.

Répondre à JEJEOS

3

okuni, le 12 nov 2008 à 20:20:31

Il y en a pas vraiment un de définit.
Tu dois récupérer le nombre de ta base de donnée, ensuite tu l'incrémente de 1 et tu update ta base de donnée avec la nouvelle valeur.
Voila, tu viens d'incrémenter de 1 ton nombre de vote.

pour voir si la personne a déja voté ou non, tu peux le faire effectivement par IP.
tu enregistre l'IP de la personne dans une autre base de donnée ensuite a chaque vote, tu vérifie si l'IP est inscrite dans la base de donnée.
mais ce n'est pas très fiable. Si ton vote est réservé aux membres de ton site (authentification) alors enregistre le nom (ou l'ID) du membre plutot que l'IP. Là tu seras sur qu'il n'y a pas de multi-vote. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

4

JEJEOS, le 12 nov 2008 à 20:47:59

Merci pour ta réponse, je pense le faire par ip, mais je ne vois pas bien comment enregistrer l'ip ?

Quelqu'un pourrait-il me donner le code a placer pour récupérer l'ip, puis pour voir si elle est déjà dans la base de donnée ....


Merci d'avance ....

Répondre à JEJEOS

5

okuni, le 12 nov 2008 à 21:08:57

Utilise cette variable : $_SERVER['REMOTE_ADDR']
elle récupère l'IP du visiteur.
ensuite tu enregistre cette variables dans une table. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

6

JEJEOS, le 12 nov 2008 à 21:13:28

Encore merci !
C'est bon, j'ai réussis a faire le contrôle de l'ip tout marche bien ...
Tout fonctionne bien : 1 vote, puis un message d'erreur ...

Par contre lorsque je vais dans phpmyadmin, je ne vois pas d'ip dans ma table, mais un 0 ; est-ce normal ?

Répondre à JEJEOS

7

CrazyWorld, le 12 nov 2008 à 21:18:13

CouCou JEJEOS quelle est la structure de ta colonne ip dans ta BDD ?

Répondre à CrazyWorld

8

okuni, le 12 nov 2008 à 21:22:19

Tu as peux-etre mal configuré ta table.
pour le champ de l'IP, met un varchar.

C'est quoi ton erreur? L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

9

JEJEOS, le 13 nov 2008 à 12:53:39

Bonjour,

Merci je viens effectivement de la mettre en varchar ; mais maintenant, je n'ai plus aucune valeur dans le champ ip.

Normalement, je devrais voir apparaitre les différentes ip, non ?

Que dois-je faire ?

Merci de me répondre,

Jérome

Répondre à JEJEOS

10

giheller, le 13 nov 2008 à 13:48:13

Bonjour,

donnes un peu plus de précision, exemple la façon (la requête) où tu mets l'IP dans ta table. JL,  m'enfin c'est juste mon avis @+,

Répondre à giheller

11

okuni, le 13 nov 2008 à 16:57:52

Oui donne du code :p
Il se peut que en changeant un type de champ, sql efface toutes les donnée ou les réécrit mal. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

12

JEJEOS, le 13 nov 2008 à 19:21:21

Bonjour :

Merci pour vos avis, je vous donne donc le code :

voici le code du boutton :

<form action="vote.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire"  onSubmit="return check();">
  <div align="center">
    <input type="submit" value="ok" name="ok"/>
    </p>
  </div>
  <p></p>


et voici le code de la page de traitement (vote.php) :

<?php

mysql_connect('localhost','root','');
mysql_select_db('') or die(mysql_error());

if(isset($_POST['ok']) && $_POST['ok']!="")
{
$ip = $REMOTE_ADDR;
$ipeexists = "SELECT ip FROM vote
 WHERE ip='$ip'";
$req = mysql_query($ipeexists);
if (mysql_num_rows($req) > 0) {
echo "<body bgcolor=F7F5F5><br><br><br><br><br><b><p align=center><span style=font-size:10pt;><font color=red face=verdana>Votre avis a deja ete donne, merci.</p></font></b>";
exit;
}

 mysql_query("INSERT INTO vote values('$ip')");
    $sql = "UPDATE premium SET note=note+1";
    $req = mysql_query($sql) or die(mysql_error());
	


    echo "Votre vote a ete pris en compte";
}
else
    echo"Erreur dans l'envoi du formulaire";

?>

Répondre à JEJEOS

13

giheller, le 13 nov 2008 à 19:24:12

$ip = $REMOTE_ADDR;

pas bon
$ip = $_SERVER['REMOTE_ADDR'];

devrait être meiux. JL,  m'enfin c'est juste mon avis @+, ce qui se conçoit bien­ s'ennonce clairement;
se faire aider, n'est pas faire faire son travail

Répondre à giheller

14

JEJEOS, le 13 nov 2008 à 19:43:10

MERCI !!!

En effet, maintenant j'ai l'ip qui apparait dans ma base de donnée, cependant je peu voter autant de fois que je veux ...
Y a-t-il encore une erreur dans mon code ? Je ne la vois pas ...

Si quelqu'un en voie une, merci de me répondre ...

Répondre à JEJEOS

15

JEJEOS, le 13 nov 2008 à 20:02:46

En fait je vien de trouver le problème, il venait de ma base mysql, dans la taille de ma variable, j'avais mis 11, car je n'avais pas compter les points de l'adresse ip.

Je viens de la remplacer par 14 et la tout marche ...

Encore merci a ceux qui ont donnés un peu de leur temps pour m'aider ....

Jerome

Répondre à JEJEOS

16

giheller, le 13 nov 2008 à 20:45:16

Bonsoir,
merci alors de passe le pb en résolu. JL,  

Répondre à giheller

17

myauxc, le 8 fév 2009 à 22:30:54

Bonjour,

Je relance le poste pour la continuité de celui si ;-)

Au fait j'ai aussi mis en place le même principe de recup. l'IP et de vérification avec la date afin d'empêcher 2 votes le même jour par la même personne.

Par contre comme nous le savons bien il y a plusieurs moyens de changer son IP facilement.
Et donc du coup j'ai des votes douteux ;-) si vous voyer ce que je veux dire

Quelqu'un aurait une idée pour ajouté un contrôle de plus que l'IP toujours dans l'idée de permettre 1 vote / jour / utilisateur ?

Merci d'avance

Répondre à myauxc

18

 Votxo, le 29 jun 2009 à 22:57:50

En fait, tu as + simple comme systeme de vote, sans base de données a installer, c'est le service que propose Votxo http://www.votxo.com c'est un outil gratuit pour webmaster

Répondre à Votxo
Collection CommentÇaMarche.net