Bonjour,
J'aimerais afficher sur le profil des membres de mon site, leur statut : En ligne ou Hors ligne.
J'ai ajouté dans ma table
membre un nouveau champ :
statut type VARCHAR.
Ensuite j'ai fait une condition pour filtrer uniquement le membre avec la session ouverte et j'ai créé des requêtes, et le problème
c'est que dans ma base de donnée, il y a bien
OFFLINE chez "Guillaume" par défault, et
ONLINE chez moi vu que je me suis connecté.
Et quand je me connecte, j'ai bien mon statut : En ligne. Et quand je visite le profil de "Guillaume" il est aussi En ligne, alors que dans ma base, son statut est
OFFLINE (Et il ne peut pas être connecté, c'est un membre que j'ai créé pour les tests).
Je précise que
$pseudo, et
$pseudo_membre sont déclarées avec ces requêtes :
$pseudo = $_SESSION['pseudo']; //Quand on visite son propre profil
$req = $connect->prepare('SELECT * FROM wa_communaute WHERE pseudo = :pseudo');
$req->execute(array('pseudo' => $pseudo));
$resultat = $req->fetch();
$pseudo_membre = $_GET['pseudo']; //Quand on visite le profil d'un membre
$req = $connect->prepare('SELECT * FROM wa_communaute WHERE pseudo = :pseudo');
$req->execute(array('pseudo' => $pseudo_membre));
$result = $req->fetch();
Voici mes requêtes :
if($_SESSION['pseudo'] == $resultat['pseudo']) {
$req1 = $connect->prepare('UPDATE wa_communaute SET statut = :statut WHERE pseudo = :pseudo');
$req1->execute(array('statut' => 'online','pseudo' => $pseudo));
$req1->closeCursor();
$req2 = $connect->prepare('SELECT * FROM wa_communaute WHERE statut = :statut AND pseudo = :pseudo');
$req2->execute(array('statut' => $statut,'pseudo' => $pseudo));
$req2->closeCursor();
$donnees0 = $req2->fetch();
if($donnees0['statut'] == $statut){
echo 'Connecté ..';
} else {
echo 'Hors ligne ..';
}
} else {
$req3 = $connect->prepare('SELECT * FROM wa_communaute WHERE pseudo = :pseudo');
$req3->execute(array('pseudo' => $pseudo_membre));
$req3->closeCursor();
$donnees1 = $req3->fetch();
if($donnees1['statut'] != $statut){
echo 'Connecté ...';
} else {
echo 'Hors ligne ...';
}
}
La condition : "
if($_SESSION['pseudo'] == $resultat['pseudo'])" fonctionne,
resultat['pseudo'] est bien égal à la session.
L'erreur est plus bas. Je pense que j'ai oublié beaucoup de choses (notamment le timestamp)
Merci d'avance pour votre aide
