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

PHP & Base de données Discussion :

Comparer des dates sql + php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut Comparer des dates sql + php
    Bonjour, je suis en train d'apprendre les bases php+sql. Je cherche à créer un timeout de session pour un site que je suis en train de créer. J'arrive à savoir qui est connecté, à updater l'heure de la dernière page vue par tel ou tel utilisateur mais ma fonction (si on peut appeler ça comme ça =/) ne modifie pas la bdd... j'ai essayé pas mal de trick mais je suis un peu à court (google aussi =( ).


    la table session contient une colonne 'date_update' qui est mise à jour des qu'une page est consulté par l'utilisateur, le but est de déconnecter (cad: virer de la bdd) l'utilisateur s'il n'a pas fait d'update depuis plus de 10 minutes.


    C'est surement très bête mais je n’arrive pas à mettre le doigt dessus, merci de votre aide =D


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php
    	function chk_idle()
    	{
    		$user = "root";
    		$password = "";
    		$database = "test";
    		$ressource = mysql_connect('localhost',$user,$password);
    		@mysql_select_db($database, $ressource) or die( "Unable to select database");
    		$query = "DELETE FROM session WHERE date_update < " . date("Y-m-d H:i:s", time() - 600);
    		mysql_query($query, $ressource);
    		mysql_close($ressource);
    	}
    	chk_idle();
    ?>
    ps: j'appelle cette fonction par include au début de chaque page.
    pps: le champ de 'date_update' est un datetime

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Euh pourquoi tu détruis pas la session tout simplement ?
    Quelque chose qui ressemblerait à ça ne te conviendrait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if ($_SESSION['time_active'] + 10 minutes)  > time(now)
    {
    session_destroy();
    }
    else { $_SESSION['time_active'] =  time(now)}
     
     //et pour la création de la session  
    if ($_POST['login'] == $login  && $_POST['pwd']  == $pwd)
    {
    $_SESSION['login'] = $login ; 
    $_SESSION['time_active'] = currenttime() ;
    }
    ?
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    Eh bien en fait le but est que chaque fois que quelqu'un charge une page ma bbd soit mise à jour, de manière à avoir un compteur du nombre de personne online qui ne compte pas les idles et les gens qui ferment leur browser sans se déconnecter proprement =/

  4. #4
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Rajoute des simples quotes pour encadrer ta date dans ta requête.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    Rajoute des simples quotes pour encadrer ta date dans ta requête.
    C'était bien les quotes, j'ai modifié la requette comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "DELETE FROM session WHERE date_update < '" . date("Y-m-d H:i:s", time() - 60) . "'";
    *parti se pendre*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] comparer des dates ?
    Par taffMan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/06/2007, 10h00
  2. Comparer des dates en T-SQL
    Par AbyssoS dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/03/2006, 16h06
  3. [SQL2K] requête SQL, comparer des dates
    Par cortex024 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 16/03/2006, 14h32
  4. Comparer des Dates (Access, jdbc)
    Par babylone7 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2005, 10h01
  5. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/10/2004, 15h15

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