Page 1 sur 1

Supprimer session à 0h00

Posté : 28 mai 2013, 09:44
par Gorbi
Bonjour,
Je souhaiterais faire une suppression automatique des sessions actives sur mon site. Pour cela j'ai associé le changement d'une valeur dans une table lors de la connexion et la déconnexion d'un utilisateur.

Seulement j'ai du mal à voir comment je pourrais faire la détection du passage de midi et minuit, il faudrait sans doute fixer deux variables, une fixée avant l'actualisation de la page et l'autre après, et après on les compare. Mais je ne vois pas bien comment faire, pouvez-vous m'aider ?

Merci d'avance,

Re: Supprimer session à 0h00

Posté : 28 mai 2013, 10:14
par ghost5922
Bonjour,

pourquoi ne pas mettre un expire a la session directe

http://php.net/manual/fr/function.sessi ... expire.php

tu calcule le temps entre maintenant et l'heure j puis tu mets l'expire

je connais pas beaucoup je m'avance peut-être

Re: Supprimer session à 0h00

Posté : 28 mai 2013, 10:31
par Gorbi
Bonjour,
Merci de ta réponse. C'est une bonne idée seulement l'expiration de la session n'est pas la seule tache à effectuer. En effet voilà la page php qui doit être exécutée lors de ce passage à midi et minuit
<?php
// On démarre la session
session_start ();
// On détruit les variables de notre session
session_unset ();

// On détruit notre session
session_destroy ();
$prec = $_SERVER['HTTP_REFERER'];
$prec1 = $prec."#index";
$_SESSION['actuel'] = "Aucun";


// On enlève la connexion dans la BDD
        include("connect_db.php");
$verif = "SELECT * FROM membres";
		$exec_verif = mysql_query($verif) or die(mysql_error());
		while($row_verif = mysql_fetch_array($exec_verif)){
		 if ($row_verif['connect'] == "1") {
			$suppr_connect = mysql_query("UPDATE `membres` SET `connect`='0'") or die(mysql_error());
			}
		}
// On redirige le visiteur vers la page d'accueil
header("Location: ". $prec1 );
?>

Re: Supprimer session à 0h00

Posté : 28 mai 2013, 10:49
par ghost5922
Re,

pour exécuter un script php a une heure x tu peux utilise les taches crons sois si tu as un dédie par ton serveur sinon il a des sites qui propose ce service

Re: Supprimer session à 0h00

Posté : 28 mai 2013, 11:19
par Gorbi
Je te remercie, je vais creuser de ce côté-là.

Re: Supprimer session à 0h00

Posté : 28 mai 2013, 14:52
par moogli
salut,


ton code met a jour la table membres (toues la table) à chaque fois qu'une membre est connecté ... (s'il y a 5000 membre de connecté tu met à jour 5000 fois la table :mrgreen: )

ton code code de mise à jour peux se résumer à une ligne
$suppr_connect = mysql_query("UPDATE `membres` SET `connect`='0'");

ensuite, est ce vraiment utile de déconnecter tout le monde ?

la tu fait une déconnexion logique en base, mais est ce que tu vérifie ce paramètre en base quand tu affiche toute les page ?
si ce n'est pas le cas, tant que la session est active tu est connecté (après minuit ou pas).
Ensuite le session_destroy que tu met ne s'applique qu'a l'utilisateur qui lance le script.

pour cela tu peux t'orienter vers SessionHandler::gc.


@+