par
Tyrese » 07 août 2007, 14:46
Bon alors j'ai étudié le probleme sous différente couture, et je suis revenu à l'idée de créer une colonne status dans ma table d'utilisateurs.
Alors voilà pourquoi :
$query1 = "UPDATE dp_utilisater SET lastquerytime=NOW(), status='online' WHERE pseudo='$pseudo'"; //On l'écrit dans la table
mysql_query($query1);
Lors de la connection d'un utilisateur, l'heure est enregistré, de meme que son statut.
Dans la page membre, voilà ce que j'ai introduit pour obtenir l'image "online" ou "offline".
$query = ("SELECT * FROM $db_prefix"._utilisater." WHERE squad='$id'") or die(mysql_error());
$result = mysql_query($query);
$tr = 1;
while( $ligne = mysql_fetch_array($result))
{
extract($ligne);
$userstatus = $ligne["status"];
$userid = $ligne["id"];
if($ligne[status] == "") { $status = ""; }
else { $status = "Status : $ligne[status]<br>"; }
$ligne[info] = stripslashes($ligne[info]);
$imglink = "admin/uploads/members/$ligne[pseudo].jpg";
if(file_exists($imglink)){$img = $imglink; $link="1";}
else{
$img = "admin/uploads/members/nopic.jpg"; $link="0";
}
$ligne[grade] = stripslashes($ligne[grade]);
if($ligne[grade] == "") { $grade = ""; }
else { $grade = "Grade : $ligne[grade]<br>"; }
echo "
<tr>
<td class='leftb'><img src='admin/uploads/flags/$ligne[pays].gif'></td>
<td width='150' class='leftb'><a href='?p=equipe&action=view&id=$userid'><B>$ligne[pseudo]</b></a></td>
<td width='150' class='leftb'><i>$ligne[grade]</i></td>
<td class='leftb' width='50'><center><img src=img/$ligne[status].gif></center></td>
</tr>
<tr>
<th class='breakline' height='100%' colspan='6'></th>
</tr>
";
}
Ensuite, sur ma page index.php, je souhaiterais que la personne soit offline au bout de 5 minutes. J'ai donc mis ça :
$query7 = ("UPDATE dp_utilisater SET status='offline' WHERE lastquerytime < SUBDATE( NOW(), INTERVAL 5 MINUTE )"); //On l'écrit dans la table
mysql_query($query7);
Jusque là, pas de probleme, mes statuts sont mis à jour lorsque les gens se connectent, et 5 minutes après, ils sont mis offline.
Miantenant, j'ai une interrrogation. J'aimerais que, tant que les utilisateurs sont sur leur session et donc connectés avec leur login, que leur timestamp soit rafraichit.
Est-il possible de mettre à jour le timestamp si l'utilisateur est toujours connecté au site ? Si oui, comment vu que la personne n'est jamais déconnecté d'elle meme, mais au bout de 5 minutes meme si elle est toujours présente sur le site ?[/b]
Bon alors j'ai étudié le probleme sous différente couture, et je suis revenu à l'idée de créer une colonne status dans ma table d'utilisateurs.
Alors voilà pourquoi :
[php]$query1 = "UPDATE dp_utilisater SET lastquerytime=NOW(), status='online' WHERE pseudo='$pseudo'"; //On l'écrit dans la table
mysql_query($query1);[/php]
Lors de la connection d'un utilisateur, l'heure est enregistré, de meme que son statut.
Dans la page membre, voilà ce que j'ai introduit pour obtenir l'image "online" ou "offline".
[php]
$query = ("SELECT * FROM $db_prefix"._utilisater." WHERE squad='$id'") or die(mysql_error());
$result = mysql_query($query);
$tr = 1;
while( $ligne = mysql_fetch_array($result))
{
extract($ligne);
$userstatus = $ligne["status"];
$userid = $ligne["id"];
if($ligne[status] == "") { $status = ""; }
else { $status = "Status : $ligne[status]<br>"; }
$ligne[info] = stripslashes($ligne[info]);
$imglink = "admin/uploads/members/$ligne[pseudo].jpg";
if(file_exists($imglink)){$img = $imglink; $link="1";}
else{
$img = "admin/uploads/members/nopic.jpg"; $link="0";
}
$ligne[grade] = stripslashes($ligne[grade]);
if($ligne[grade] == "") { $grade = ""; }
else { $grade = "Grade : $ligne[grade]<br>"; }
echo "
<tr>
<td class='leftb'><img src='admin/uploads/flags/$ligne[pays].gif'></td>
<td width='150' class='leftb'><a href='?p=equipe&action=view&id=$userid'><B>$ligne[pseudo]</b></a></td>
<td width='150' class='leftb'><i>$ligne[grade]</i></td>
<td class='leftb' width='50'><center><img src=img/$ligne[status].gif></center></td>
</tr>
<tr>
<th class='breakline' height='100%' colspan='6'></th>
</tr>
";
}[/php]
Ensuite, sur ma page index.php, je souhaiterais que la personne soit offline au bout de 5 minutes. J'ai donc mis ça :
[b]$query7 = ("UPDATE dp_utilisater SET status='offline' WHERE lastquerytime < SUBDATE( NOW(), INTERVAL 5 MINUTE )"); //On l'écrit dans la table
mysql_query($query7);[/b]
Jusque là, pas de probleme, mes statuts sont mis à jour lorsque les gens se connectent, et 5 minutes après, ils sont mis offline.
Miantenant, j'ai une interrrogation. J'aimerais que, tant que les utilisateurs sont sur leur session et donc connectés avec leur login, que leur timestamp soit rafraichit.
Est-il possible de mettre à jour le timestamp si l'utilisateur est toujours connecté au site ? Si oui, comment vu que la personne n'est jamais déconnecté d'elle meme, mais au bout de 5 minutes meme si elle est toujours présente sur le site ?[/b]