IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Comparaison de date entre deux IP (anti-flood)


Sujet :

Langage PHP

  1. #41
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    J'essais ce que propose Julien.alkaza et je vous dis le résultat.

    Sinon je passe les dates avec time() et là c'est du gâteau pour enlever 30 secondes.

    **edi** je vais le faire tout de suite avec time() parce que même si la requête de Julien.alkaza est bonne, les formats de date ne sont pas identiques donc ça va encore faire des difficultés.

    Je vous dis quand j'ai terminé.

  2. #42
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bon ça me fatigue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      $ip = $_SERVER["REMOTE_ADDR"];
      $date=time();
    $dateNv=$date-30;
    $affiche="SELECT ip FROM commentaire WHERE  dateNombre > '".$dateNv."' ";
    $resultat = mysql_query("$affiche")or die("Error: ".mysql_error());;
    while ($R = mysql_fetch_array($resultat)) {
    if(empty($R)) {echo"bon";}
    else {echo"attend";}
    ;}
    mysql_free_result($resultat);
    ?>
    Pourquoi "bon" ne s'affiche pas alors que "attends" s'affiche ?
    j'ai essayé avec if($R=="") c'est pareil.

  3. #43
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Question : pourquoi testes-tu empty ?

  4. #44
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Je teste pas empty, je teste $R.

    non?

  5. #45
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    fais le avec mysql_num_row

  6. #46
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449

  7. #47
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    if(empty($R)) :
    ça ne veut pas dire "si $R est vide" avec vide égal à "" ?


    J'essai ce que propose yiannis ou si vous avez autre chose allez-y, ça fait 4 heure que ça dure pour une bidouille

  8. #48
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      $ip = $_SERVER["REMOTE_ADDR"];
      $date=time();
    $dateNv=$date-30;
    $affiche="SELECT ip FROM commentaire WHERE  dateNombre > '".$dateNv."' ";
    $resultat = mysql_query("$affiche")or die("Error: ".mysql_error());;
    while ($R = mysql_fetch_array($resultat)) {
    if(mysql_num_rows($R) == 0 ) {echo"bon";} 
    else {echo"attends";} 
    ;}
    Bon je viens d'essayer cela, c'est pareil, feuille blanche (j'ai placé "" à la place de 0 c'est pareil).

  9. #49
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Selon toi, qu'est-ce-qu'est censé retourner ton select ?

  10. #50
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Ah oui c'est crétin j'ai oublié d'inscrire $r[ip]

    M'enfin ça fonctionne pas quand même, toujours feuille blanche.

  11. #51
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Mr N.
    Selon toi, qu'est-ce-qu'est censé retourner ton select ?

  12. #52
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Il doit sélectionner l'adresse IP enregistrée moins de 30 secondes avant la date time() actuelle.

    Non ? Je vais relire.

    Le problème ne vient pas de la requête, puisque le "attends" s'affiche si je teste le script moins de 30 secondes après un enregistrement.

    Vous moquez pas.

  13. #53
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    presque.
    Il retourne les adresses ip enregistrées moins de 30 sec avant la date actuelle.

  14. #54
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    +1 Mr N (comme d'hab) pfouuu vivement les vacances

  15. #55
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    A mon avis tu cherche plutot à savoir si le posteur actuelle a déjà posté, autrement dit si son ip fait partie de la selection...
    Dans ce cas là, afin de décharger php, tu dois inclure cette clause dans ta requete.

  16. #56
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bon j'ai essayé de rajouter un LIMIT 0.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ip = $_SERVER["REMOTE_ADDR"];
      $date=time();
    $dateNv=$date-30;
    $affiche="SELECT ip FROM commentaire WHERE  dateNombre > '".$dateNv."' LIMIT 0,1 ";
    $resultat = mysql_query("$affiche")or die("Error: ".mysql_error());;
    while ($R = mysql_fetch_array($resultat)) {
    if(empty($R[ip])) {echo"bon";}
    else {echo"attends";}
    ;}
    mysql_free_result($resultat);
    même résultat : feuille blanche.

    Quel suspens !

  17. #57
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ah ben non je suis pas daccord avec le limit.

    Limit te permet de retourner qu'un résultat. Toi c'est pas ce que tu veux !

    si son ip fait partie de la selection...

  18. #58
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    et je viens d'essayer ça, dans le while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if($R[ip] !="$ip") {echo"bon";}
    else {echo"attend";}
    pareil

  19. #59
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    commence déjà par produire une requete potable, on verra après comment on traite le résultat. Et pour ça, le seul outil dont tu as besoin est PmyA

  20. #60
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bien là j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $date=time();
    $dateNv=$date-30;
    $affiche="SELECT ip FROM commentaire WHERE  dateNombre > '".$dateNv."'  ";
    A priori ça fonctionne puisque si l'enregistrement date de moins de 30 seconde ça inscrit "attends".
    C'est si l'enregistrement date de plus de 30 secondes que ça n'inscrit rien.

    **edit**
    Pmya ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [Date] calcul de jours entre deux dates
    Par skyangel dans le forum Général Java
    Réponses: 5
    Dernier message: 05/03/2008, 15h59
  2. [Dates] Nombres de jours entre deux dates ?
    Par Metallic-84s dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2007, 17h14
  3. [Dates] nombre de mois entre deux dates
    Par Mat_DZ dans le forum Langage
    Réponses: 14
    Dernier message: 23/11/2006, 16h10
  4. [Dates] Nombre jours ouvrés entre deux dates
    Par Yali dans le forum Langage
    Réponses: 4
    Dernier message: 28/12/2005, 12h05
  5. [Dates] Nombre de jours entre deux dates
    Par cmoiscrat dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2005, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo