J'essaie de créer un espace membre ou le membre serait déconnecter de sa session au bout de x minutes
Pour cela j'ai ce code là :
<?php
function nb_et_pers_connecte()
{
if(isset($_SESSION['membre_pseudo']))
{
$dnns = mysql_fetch_array(mysql_query('select count(membre_pseudo) as nb from connectes where membre_pseudo="'.$_SESSION['membre_pseudo'].'"'));
if($dnns['nb']>0)
{
mysql_query('update connectes set timestamp="'.time().'" where membre_pseudo="'.$_SESSION['membre_pseudo'].'"');
}
else
{
mysql_query('insert into connectes(membre_pseudo, timestamp) values("'.$_SESSION['membre_pseudo'].'", "'.time().'")');
}
}
$times_m_5mins = time()-(1*5);
mysql_query('delete from connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_query('select membre_pseudo from connectes');
$num = mysql_num_rows($dnns2);
echo 'Il y a actuellement <strong>'.$num.'</strong> membre(s) connecté(s)';
if($num>0)
{
echo ':<br />';
$i=0;
while($dn2 = mysql_fetch_array($dnns2))
{
$i++;
echo $dn2['membre_pseudo'];
if($i<$num)
{
echo ',';
}
}
}
echo '.';
}
?>
J'ai deux tables créer : une "membres du site" et l'autre "membre connectés"table "membres" :
CREATE TABLE `membres` (
`membre_id` int(11) NOT NULL auto_increment,
`membre_pseudo` varchar(32) NOT NULL,
`membre_mdp` varchar(40) NOT NULL,
`membre_mail` varchar(100) NOT NULL,
`membre_inscription` bigint(20) NOT NULL,
`membre_naissance` varchar(11) NOT NULL,
`membre_msn` varchar(255) NOT NULL,
`membre_yahoo` varchar(255) NOT NULL,
`membre_aim` varchar(255) NOT NULL,
`membre_localisation` varchar(255) NOT NULL,
`membre_profession` varchar(255) NOT NULL,
`membre_avatar` varchar(255) NOT NULL,
`membre_biographie` text NOT NULL,
`membre_signature` text NOT NULL,
`membre_derniere_visite` bigint(20) NOT NULL,
`membre_banni` int(11) NOT NULL default '0',
PRIMARY KEY `membre_id` (`membre_id`),
UNIQUE (`membre_pseudo`),
UNIQUE (`membre_mail`)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
AUTO_INCREMENT=1
table "connectes" :
CREATE TABLE `connectes` (
`connectes_id` varchar(255) collate latin1_german2_ci NOT NULL,
`membre_pseudo` varchar(255) collate latin1_german2_ci NOT NULL,
`timestamp` varchar(255) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Lorsque je rentre le pseudo avec son mot de passe, je vois apparaitre le pseudo du membre en question dans la table "connectes", lorsque je clique sur deconnexion, le membre s'enlève de la table connectesMais si je reste inactif, il reste connecté peut importe la valeur que j'apporte à
$times_m_5mins = time()-(1*5);
Merci de m'éclairer