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. #21
    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
    Ok merci les gars

    Pour la requête SQL , apparemment ç'est quelque chose comme ça :


    SELECT ip FROM table WHERE ip=$ip AND date= $date - INTERVAL 30 SECOND.

    J'ai bon ?



    psychoBob a écrit:
    Je saurais pas te dire malheureusement,

    mauvaise réponse
    Comment fait-on pour le savoir ? PHP INFO ?

  2. #22
    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
    je dirais plus mysql^^ ou phpmyadmin te l'indique en page d'accueil

  3. #23
    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
    Alors il y a écrit cela :
    MySQL 3.23.58-log sur le serveur sql6

    Le site est hébergé par OVH.



    Sinon pour ma requête? Je suis en train de faire un script pour la tester, mais si vous la trouvez pas à votre goût, hésitez pas, merci.

  4. #24
    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
    Les requêtes se testent sous phpmyadmin

  5. #25
    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
    C'est juste, c'est fou tout ce que j'apprend ici

    sinon là j'essayais ce script et il retourne rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      $ip = $_SERVER["REMOTE_ADDR"];
      $date=strftime("%y/%m/%d %H:%M:%S");
     
    $affiche="SELECT ip FROM commentaire WHERE ip='".$ip."' AND date= '".$date."' - INTERVAL 30 SECOND";
    $resultat = mysql_query("$affiche");
    while ($R = mysql_fetch_array($resultat)) {
    if(empty($R)) {echo"bon";}
    else {echo"attends";}
    ;}
    mysql_free_result($resultat);
    C'est normal qu'il n'affiche pas "attend" il n'y a pas d'enregistrement pour ce test. Mais cela n'affiche pas non plus "bon".

  6. #26
    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
    j'essaierai plutot comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(mysql_num_rows($R) == 0 ) {echo"bon";}
    else {echo"attends";}
    ;}
    mysql_free_result($resultat);

  7. #27
    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
    ça ne fonctionne pas non plus.
    L'erreur ne serait-elle pas dans le SELECT ?

  8. #28
    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
    essaie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $resultat = mysql_query("$affiche") or die("Error: ".mysql_error());

  9. #29
    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
    Juste réflexe.

    Ceci dit la page reste d'un blanc maculé. Pas d'erreur qui s'affiche, rien.

  10. #30
    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
    essaie ta requete dans mysqladmin. que retourne-t-elle?

  11. #31
    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
    Elle ne retourne rien, n'y message d'erreur ni enregistrement.

    Je viens d'essayer en rajoutant un enregistrement censé sortir puisque la date est inférieur à l'interval.
    Mais c'est le même résultat : ni message d'erreur ni enregistrement retourné.

  12. #32
    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
    Citation Envoyé par psychoBob
    C'est normal qu'il n'affiche pas "attend" il n'y a pas d'enregistrement pour ce test. Mais cela n'affiche pas non plus "bon".
    donc dans mysqladmin c'est normal qu'elle ne retourne rien

    bon allons y petit a petit.
    a priori ta requette est bonne (mysql n'a pas bronche)
    ton probleme vient peut etre de ton echo.
    fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "[[[[".mysql_num_rows($R)."]]]]"
    pour verifier que ton erreur vient de ton test

  13. #33
    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
    autre chose de quel format est ta date dans mysql et de quel format est $date

  14. #34
    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
    Merci Yiannis pour tes réponses,


    Dans php la date est ainsi :
    $date=strftime("%y/%m/%d %H:%M:%S");


    Pour la table le champ est ainsi :

    date datetime Non 0000-00-00 00:00:00


    j'essaie ce que tu dis dans le post au dessus, je te donne le résultat ensuite.

  15. #35
    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'ai essayé ce que tu proposes pour "echo" :
    Idem, la page est vide (ce qui est normal pour le coup puisqu'aucun enregistrement ne correspond).

    Je vais réessayer un truc.

  16. #36
    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
    Toujours blanc. C'est relaxant remarquez une feuille blanche. C'est presque de l'art.

  17. #37
    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
    Citation Envoyé par psychoBob
    J'ai essayé ce que tu proposes pour "echo" :
    Idem, la page est vide (ce qui est normal pour le coup puisqu'aucun enregistrement ne correspond).

    Je vais réessayer un truc.
    non ce n'est pas normal si tu as mis ton echo comme je te l'ai dit et ce juste apres ton mysql_query, meme si le resultat est vide tu devrais au moins voir les crochets([[[[]]]]]).

    je vois une autre erreur $date n'est pas du meme format que ton champs date. Ca ne pourra pas fonctionner (on ne peut pas comparer des choux avec des carottes)

  18. #38
    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 en effet, ce n'est pas normal que le echo ne retourne rien.
    Le problème doit venir de la date dans le champ WHERE.

    Mais pourtant dans phpMyAdmin cela ne renvoit tout de même rien, alors qu'il n'y a plus de variable PHP.

    Mr N parlait de version Mysql, c'est peut-être le problème.


    Bon, j'en envie d'essayer de le faire avec PHP et ce que tu proposais au dessus.
    j'essais, je vous dis le résultat.


    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /
    / je récupère la date
    $date=strftime("%y/%m/%d %H:%M:%S");
    // maintenant je voudrais lui enlever 30 secondes (mais je ne sais pas trop comment

  19. #39
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    Pour ta requete c'est un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ..... WHERE heure BETWEEN ($now - INTREVAL 30 SECOND) AND $now
    Il faut spécifier les deux bornes...

  20. #40
    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
    desole de ne repondre que maintenant psychoBob mais probleme de connexion.

    Citation Envoyé par psychoBob
    Bon en effet, ce n'est pas normal que le echo ne retourne rien.
    Le problème doit venir de la date dans le champ WHERE.
    non! car si tu met mon echo juste apres le mysql_query tu ne rentre pas dans ta boucle (while) et donc tu devrais au moins voir les crochets.
    sinon essaie ce que te propose Julien.alkaza

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 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