Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2011, 16h43   #1
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
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 :
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
Jobozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 16h57   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 775
Points : 2 335
Points : 2 335
Euh pourquoi tu détruis pas la session tout simplement ?
Quelque chose qui ressemblerait à ça ne te conviendrait pas :
Code :
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() ;
}
?
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h18   #3
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
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 =/
Jobozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 18h13   #4
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
Rajoute des simples quotes pour encadrer ta date dans ta requête.
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 18h21   #5
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 1
Points : 1
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 :
$query = "DELETE FROM session WHERE date_update < '" . date("Y-m-d H:i:s", time() - 60) . "'";
*parti se pendre*
Jobozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h00.


 
 
 
 
Partenaires

Hébergement Web