Se connecter / S'enregistrer
Votre question

Inser ip dans une table

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
26 Octobre 2007 02:02:32

Bonjour,

J'ai un petit souci avec un script de vote.

Donc voilà tout d'abort mon script:

  1. <?php
  2.  
  3. require ('config.php');
  4. mysql_connect ("$host", "$bdd", "$pass");
  5. mysql_select_db ("$bdd");
  6.  
  7. $donnees_sql = mysql_query("SELECT COUNT(*) AS present FROM identifaction WHERE ip='".$_SERVER['REMOTE_ADDR']. "'");
  8.  
  9. $verif = mysql_fetch_array($donnee_sql);
  10.  
  11. if ($donnee['present'] == 1)
  12. {
  13. echo "Vous avez déjà voter.";
  14. }
  15.  
  16. else
  17. {
  18.  
  19. $id= $_GET['id'];
  20. $reponse = mysql_query("SELECT * FROM candidat WHERE id = '$id'");
  21.  
  22. $donnees = mysql_fetch_array($reponse);
  23. $point = $donnees['point'];
  24. $points = $point + 1;
  25.  
  26. echo "Ton vote à été pris en compte, merci d'avoir voté.<br />Identification: ";
  27.  
  28. mysql_query("UPDATE candidat SET point='$points' WHERE id = '$id'");
  29.  
  30. $identifie = $_SERVER['REMOTE_ADDR'];
  31.  
  32. mysql_query ("INSERT INTO identification VALUES('', '$identifie')");
  33.  
  34. print_r ($_SERVER['REMOTE_ADDR']);
  35.  
  36. mysql_close();
  37. }
  38. ?>


Se qui se passe:

Le vote est bien comptabilisé... print_r affiche bien l'ip du vote. Mais l'ip ne s'inscrit pas dans la table identification. J'ai même essayer manuellement en entrant mon ip dans la table. Mais il m'autorise quand meme le vote... Je pense que le problème viens de ma table. J'ai 2 entrées "id" en auto_incrèment et clé primaire et "ip" en varchar(15) je savais pas trop en quoi le mettre. Ou alors je suis totalement a coter de la plaque et ne sais pas utiliser REMOTE_ADDR, donc merci de m'éclairer.

Autres pages sur : inser table

26 Octobre 2007 15:47:08

rajoute un "or die" pour voir l'erreur de la requete!
26 Octobre 2007 16:55:59

Arf j'avais mal écrit "identification dans la table"... bon il inscrit bien l'ip dans la table... mais maintenant il m'autorise tout de meme le vote...

Edit: il me fait 6 enregistrement avec la meme ip si je clic 6 fois..
Contenus similaires
26 Octobre 2007 18:02:34

il faudrait que tu apprennes à debugguer parce que des trucs de ce genre:
Citation :

$verif = mysql_fetch_array($donnee_sql);
if ($donnee['present'] == 1)

.... :p 
a c 232 L Programmation
26 Octobre 2007 18:02:49

le problème est que tu vérifies sur present == 1, tu pourrais mettre si present >=1;

Car dans ton cas, si t'as eu un soucis avec une IP qui s'est insérée deux fois, tu ne peux plus le détecter.

edit: oui aussi :p 
26 Octobre 2007 18:03:50

Oui mais ca ca été corriger lol

  1. $donnee_sql = mysql_query("SELECT COUNT(*) AS present FROM identification WHERE ip='$identifie'");
  2.  
  3. $verif = mysql_fetch_array($donnee_sql);
  4.  
  5. if ($verif['present'] == 1)
  6. {
  7. echo "Vous avez déjà voter.";
  8. }
  9.  
  10. else
  11. {


Ok je fais ton truc et je dis quoi
26 Octobre 2007 18:08:33

on en revient à ce que t'as indiqué OmaR_ShaRif, par contre, en théorie, tu ne devrais en avoir qu'une d'ip, tu peux donc laisser le 1, mais effacer ta table!

PS: OmaR_ShaRif, pourquoi ton pseudo est codé comme ca:
OmaR_ShaRi<span class="s0"> </span>f
??
26 Octobre 2007 18:09:32

ok ca fonctionne avec >=1... thx

Dernière petite chose... Comment effacer automatiquement toute les entrées toute les 24h pour pas que je le fasse manuellement?
26 Octobre 2007 18:10:53

ben toutes les 24h, tu fais un delete!

ou la question porte sur les 24h? webcron.org
a c 232 L Programmation
26 Octobre 2007 18:12:51

coca25 a dit :
PS: OmaR_ShaRif, pourquoi ton pseudo est codé comme ca:
OmaR_ShaRi<span class="s0"> </span>f
??


Ils ajoutent un espace au bout du 10ème caractère. sauf qu'ils ne l'affichent pas, pour que ça puisse aller à la ligne si le pseudo est trop long, et que sinon, ça affiche le pseudo en entier, sauf que quand tu le copies, ça copie avec un espace... C'est embétant mais bon, ça évite que les pseudos du genre "salutcestmonsuperpseudoderoxxor" déforme tout le forum.
26 Octobre 2007 18:21:09

Pour webcron...

Je crée une page php qui dis de supprimer les entrer de ma table identification.

J'entre l'url sur webcron, avec l'heure etc. et il éxécutera le fichier à l'heure dite... c'est bien ca?
a c 232 L Programmation
26 Octobre 2007 18:29:49

oui
26 Octobre 2007 18:38:49

OmaR a dit :
Ils ajoutent un espace au bout du 10ème caractère. sauf qu'ils ne l'affichent pas, pour que ça puisse aller à la ligne si le pseudo est trop long, et que sinon, ça affiche le pseudo en entier, sauf que quand tu le copies, ça copie avec un espace... C'est embétant mais bon, ça évite que les pseudos du genre "salutcestmonsuperpseudoderoxxor" déforme tout le forum.

pas con ;) 
26 Octobre 2007 18:43:19

Merci à vous 2 ;) 
26 Octobre 2007 18:47:20

Arf j'ai encore une question...

Si je crée le fichier delete_table.php et que je le met sur mon ftp pour webcron pour qu'il l'éxécute...

Si un internaute entre monsite.com/delete_table.php il va supprimer le table...

Et si je le sécurise webcron pourra plus y accéder?

Et si admettons que je fasse éxécuter le fichier tout les jours à 23h celui qui va voter a 22h59 pourra voter 2 minute après?
a c 232 L Programmation
26 Octobre 2007 19:01:22

allstar27 a dit :
Si je crée le fichier delete_table.php et que je le met sur mon ftp pour webcron pour qu'il l'éxécute...

Si un internaute entre monsite.com/delete_table.php il va supprimer le table...


oui

allstar27 a dit :
Et si je le sécurise webcron pourra plus y accéder?


oui

allstar27 a dit :
Et si admettons que je fasse éxécuter le fichier tout les jours à 23h celui qui va voter a 22h59 pourra voter 2 minute après?


oui
26 Octobre 2007 20:52:54

au lieu d'effacer la table, tu peux executer une requete qui effacera les ip datant de plus d'une journée, ainsi tu auras toujours ceux de la journée!

par contre celui qui re-vote le lendemain aura son vote comptabilisé, faut garder la trace de ceux qui votent et pour quel vote.
26 Octobre 2007 22:01:18

Donc je dois également ajouté un timestamp dans ma table?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS