FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 09-09-2013 16:06:04

Furiol
Membre
Inscription : 11-08-2012
Messages : 8

détruire une session actif

Bonjour,

je cherche dans mon forum fluxbb, la fonction qui permet de détruire une session du à une expiration de temps.

J'ai regarder dans mon fichier function et je suis tomber sur cette fonction :

/
// Update "Users online"
//
function update_users_online()
{
	global $db, $pun_config;

	$now = time();

	// Fetch all online list entries that are older than "o_timeout_online"
	$result = $db->query('SELECT user_id, ident, logged, idle FROM '.$db->prefix.'online WHERE logged<'.($now-$pun_config['o_timeout_online'])) or error('Unable to fetch old entries from online list', __FILE__, __LINE__, $db->error());
	while ($cur_user = $db->fetch_assoc($result))
	{
		// If the entry is a guest, delete it
		if ($cur_user['user_id'] == '1')
			$db->query('DELETE FROM '.$db->prefix.'online WHERE ident=\''.$db->escape($cur_user['ident']).'\'') or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());
			
		else
		{
			// If the entry is older than "o_timeout_visit", update last_visit for the user in question, then delete him/her from the online list
			if ($cur_user['logged'] < ($now-$pun_config['o_timeout_visit']))
			{
				$db->query('UPDATE '.$db->prefix.'users SET last_visit='.$cur_user['logged'].' WHERE id='.$cur_user['user_id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error());
				$db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$cur_user['user_id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());
					

			}
			else if ($cur_user['idle'] == '0')
				$db->query('UPDATE '.$db->prefix.'online SET idle=1 WHERE user_id='.$cur_user['user_id']) or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
		}
	}
};



si je comprend bien cette ligne :

$db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$cur_user['user_id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());

Permet de faire expiré une session en supprimant l'utilisateur sur la table "online", mais quand je fait sa manuellement depuis phpmyadmin la session reste toujours active.

Je suis pas très douer avec les session alors pouvez vous m'aiguiller s'il vous plait smile

Cordialement

Hors ligne

#2 09-09-2013 17:05:16

PascL
Membre
Inscription : 06-09-2007
Messages : 554
Site Web

Re : détruire une session actif

Salut

Ce que tu as trouvé, c'est juste pour avoir les noms et le nombre d'utilisateurs connectés en bas de l'index.

Regarde plutôt ce qui est fait quand tu cliques sur logout.

Hors ligne

#3 09-09-2013 17:11:20

Furiol
Membre
Inscription : 11-08-2012
Messages : 8

Re : détruire une session actif

eh bien j'ai cela dans mon login.php?action=out

	
// Remove user from "users online" list
	$db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$pun_user['id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());

	// Update last_visit (make sure there's something to update it with)
	if (isset($pun_user['logged']))
		$db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error());

	pun_setcookie(1, pun_hash(uniqid(rand(), true)), time() + 31536000);

donc ce code permet de faire détruire la session actif ?

Dernière modification par Furiol (09-09-2013 17:18:01)

Hors ligne

#4 09-09-2013 18:55:22

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : détruire une session actif

Bonsoir,

Si vous nous disiez quel est votre but de la suppression d'une session utilisateur, on pourrait peut-être trouver autre chose à faire.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#5 09-09-2013 22:31:42

Furiol
Membre
Inscription : 11-08-2012
Messages : 8

Re : détruire une session actif

Je souhaiterai réussir à détruire la session de mon forum sans passer par le login=out, mais par un script php externe, cependant à part réussir à supprimé l'id du membre dans la table online je ne sait pas comment simplement détruire la session. hmm

C'est pour cela que je recherche le bout de code me permettant de supprimé la session.

Hors ligne

#6 10-09-2013 09:39:47

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : détruire une session actif

Bonjour,

Si cinq membres sont connectés à votre forum, vous aller avoir cinq sessions différentes, chacune avec son identifiant unique. Le problème est de savoir quelle session vous voulez détruire par session_destroy(). Néanmoins, ce n'est pas aussi simple que ça, car :
Pour détruire complètement une session, comme faire sortir l'utilisateur, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.
Voir la gestion des sessions de PHP.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

Pied de page des forums