Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1510 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Limitation vote par IP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Limitation vote par IP

n°1657372
ti-bank
ti-bank.fr
Posté le 12-12-2007 à 19:20:50  profilanswer
 

J'essaie de limiter le vote par ip avec ça :
 

Code :
  1. $sql = "SELECT * FROM visiteurs WHERE ip = '$ip'";
  2. $req = mysql_query($sql);
  3. $nb = mysql_num_rows($req);
  4. if($nb)
  5. {
  6. echo "Vous avez déja voté !";
  7. }
  8. else {


 
Mais ça ne marche pas.
 
Pouvez vous m'aider ? Merci


Message édité par ti-bank le 12-12-2007 à 19:23:12

---------------
Tous vos programmes & cours pour calculatrices TI : www.ti-bank.fr
mood
Publicité
Posté le 12-12-2007 à 19:20:50  profilanswer
 

n°1657381
NewsletTux
<Insérez ici votre vie />
Posté le 12-12-2007 à 19:37:02  profilanswer
 

Bon, déjà je te soummets une réflexion : quel est l"intérêt de ton SELECT * ?
Pourquoi TOUT récupérer alors que tu ne désires qu'une chose, c'est savoir s'il y a au moins une correspondance ?
 
As-tu essayé également en concaténant "proprement" ?
 

Code :
  1. $sql = "SELECT COUNT(ip) AS decompte FROM visiteurs WHERE ip = '".$ip."'";
  2. $req = mysql_query($sql);
  3. $nb_ip = mysql_fetch_array($req);
  4. if($nb_ip['decompte'] != 0)
  5. {
  6. echo "Vous avez déja voté !";
  7. }
  8. else {
  9. ...


 
D'autre part, il me semble que mysql_num_rows retourne un nombre, or en écrivant if($nb) tu testes si c'est un booléen, donc a priori, normal que ça ne passe pas.


Message édité par NewsletTux le 12-12-2007 à 19:38:20

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1657387
ti-bank
ti-bank.fr
Posté le 12-12-2007 à 20:09:00  profilanswer
 

Merci.
 
Malheureusement ça ne marche toujours pas, on peut toujours voter autant de fois qu'on veut.


---------------
Tous vos programmes & cours pour calculatrices TI : www.ti-bank.fr
n°1657393
ti-bank
ti-bank.fr
Posté le 12-12-2007 à 20:32:13  profilanswer
 

Je comprends vraiment pas pourquoi :(


---------------
Tous vos programmes & cours pour calculatrices TI : www.ti-bank.fr
n°1657395
weed
Posté le 12-12-2007 à 20:41:25  profilanswer
 

NewsletTux :-), je vais faire mon chieur moi aussi ^^. Pourquoi retourne un tableau classique (index numérique) et un tableau associatif alors que tu n'exploite que le tableau associatif. Fais un print_r($nb_ip), tu verras pour t'en convaincre ....  
 
Mieux vaux faire : $nb_ip = mysql_fetch_assoc($req);
 
Sinon, je suis d'accord sur le principe. EN effet, mettre l'etoile est eviter tant que l'on peux.  
 
L'exmple de NewsletTux me semble correct aussi. Si tu peux toujours voter c'est que tu as un problème d'insertion dans ta table quand ton internaute vote.  
 
De toute facon, ce genre de test, si cela fonctionne pas, il faut analyser le problème un peu plus en détail. Regarder en base avec phpmyadmin, faire tes requetes sous phpmyadmin si cela te retourne des lignes .....

n°1657401
ti-bank
ti-bank.fr
Posté le 12-12-2007 à 20:47:31  profilanswer
 

Oui en fait, ça coince car là ça sélectionne juste un IP non déterminé et non pas l'IP du votant.
 
Comment sélectionner celui de clui qui vote, sachant qu'il ne faut pas être logué en membre pour voter ??
 
J'ai les IP qui se stockent dans la base "visiteurs" avec le champ ip.


Message édité par ti-bank le 12-12-2007 à 20:48:07

---------------
Tous vos programmes & cours pour calculatrices TI : www.ti-bank.fr
n°1657412
weed
Posté le 12-12-2007 à 21:27:01  profilanswer
 

Et tu viens juste de t'en apercevoir... :) La programmation, il faut toujours procéder étape par étape, et valider chacune d'elle et non pas programmer d'une seule traite ...

 

Pour ton ip, soit tu regarde via les info que te donnes phpinfo();
soit tu fais un print_r($_SERVER);


Message édité par weed le 12-12-2007 à 21:27:11
n°1657446
ti-bank
ti-bank.fr
Posté le 12-12-2007 à 22:31:08  profilanswer
 

ah ba non en fait, c'est bon car le WHERE prend bien le bon IP du visiteur donc je vois pas où ca coince.


---------------
Tous vos programmes & cours pour calculatrices TI : www.ti-bank.fr
n°1657968
weed
Posté le 13-12-2007 à 18:59:01  profilanswer
 

ton ip est bien en base quand tu regardes dans phpMyAdmin ?

n°1657995
erwan83
Du Shift DEL tu te méfieras !
Posté le 13-12-2007 à 20:24:30  profilanswer
 

Code :
  1. <?php
  2. $db="base";
  3. $link = mysql_pconnect("sql.xxx", "log","pass" );
  4. mysql_select_db($db , $link);
  5. $sql = mysql_query(" INSERT INTO `visiteurs` (`IP`) VALUES ('$IP')" ) or die(mysql_error());
  6. $select = " SELECT count(IP) FROM `visiteurs` WHERE `IP` LIKE '$IP' ";
  7. $result = mysql_query($select,$link);
  8. $row = mysql_fetch_row($result);
  9. $total = $row[0];
  10. if (total > 1)
  11. {
  12. echo 'dans tes rèves mémé';
  13. // etc etc etc
  14. }
  15. elseif (total == 1)
  16. {
  17. echo 'bravo vous avez le droit de voter, changez d\'IP et revenez dans 5 minutes';
  18. }
  19. ?>


 
tu peux faire un peu plus sioux avec les sessions en associant IP et session ou juste en calculant le même chose parrapport aux sessions


---------------
http://www.ypikay.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Limitation vote par IP

 

Sujets relatifs
[PHP] [ RESOLU ] Textarea et javascript \n ou \\nPHP MYSQL Affichage resultats selon heure et heure de nuit
[PHP] Erreur: Cannot use a scalar value as an array[PHP] Variable non définie ?!
Calculer la date d'il y a 30 jours en PHPProbleme Free et scripts de news PHP
[Resolu] Php + plusieurs bases Access[HTML]/[PHP] Formulaire boutons radios et onclick
[RESOLU] Pb avec librairie GD sur PHP 4.4.2Comment realiser ces fonctions (sondage,...), html,PHP?
Plus de sujets relatifs à : [PHP] Limitation vote par IP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR