Systems en ligne hors ligne
- Accueil
- Forum
- Programmation
- PHP
- Systems en ligne hors ligne
Flex Le 20 décembre 2016 à 22:23 (Édité le 25 janvier 2019 à 17:52)
Merci pour votre aide 😀
TheFlameflo Le 22 décembre 2016 à 02:11 (Édité le 1 janvier 1970 à 01:00)
Je pense que ce tutoriel pourrait t'aider : https://www.youtube.com/watch?v=qi4Ho1YVMBs
Bonne chance !
Johan-Krn Le 22 décembre 2016 à 02:51 (Édité le 1 janvier 1970 à 01:00)
dans ta base de donnée (La ou sont stocker des utilisateur) tu ajoute un champ "Online" ou un autre nom plus claire sa sera un type ENUM et dans taille/valeurs tu écrit sa "'0','1'" en gros on choisis entre 0 ou 1 après avec le ENUM tu peut mettre plain de paramètre par exemple moi j'ai mis sa "'0','1,'2''" du coup j'ai le choix entre 0, 1 ou 2 pour moi "0" dit que la personne est hors ligne, "1" dit que la personne est en ligne après si tu veut ajouter comme moi le "2" dit que la personne est en ne pas déranger(optionnel) sinon il suffit d'utiliser BOOLEAN qui est pareil sauf que c'est binaire donc pas le choix c'est vrai ou faut, 0 ou 1 bref moi je montrerais que en BOOLEAN et rien a mettre dans la taille/valeurs
dans la page de connexion ajouter les ligne de code qui son en dessous il faut mettre le bout de code après avoir vérifier que tout les infos son les bonne en gros juste au dessus du code pour rediriger l'utilisateur
$q = $db->prepare("UPDATE users SET online='1' WHERE pseudo = :identifiant");
$q->execute([
'identifiant' => $_GET['identifiant']
]);
pour faire simple le $q est le nom que j'utilise pour stocker la requête mais tu dois le savoir bref le $db est le nom que j'ai mis pour me connectant a la bdd ensuite ma table s'appelle "users" je modifie "Online" pour le mettre a "1" la ou le pseudo trouver dans la bdd correspondent bien a l'identifiant, "identifiant" qui est le que j'ai mis dans le name du input après quand j’exécute je dit que "identifiant" est le "$_GET['identifiant']" donc c'est se qui est entrer dans le champ "identifiant"
après pour afficher je fait sa(en dessous) moi j'ai pris un bout de code css sur internet pour avoir un point vert si le "is-online" est mis dans la class du span si c'est vide le point est rouge
<?php
$q = $db->prepare("SELECT name, pseudo, email, online, avatar FROM users WHERE id = ?");
$q->execute([$_GET['id']]);
$user = $q->fetch(PDO::FETCH_OBJ);
?>
<div class="user-online-status">
<span class="user-status <?= $user->online ? 'is-online' : ''; ?>"></span>
</div>
donc le "is-online" c'est le nom pour mettre la couleur verte et si elle est pas dans la class du span c'est rouge bref
je sélectionne tout ce que je veut afficher sur le profil de mon utilisateur la ou id est égale, sois c'est dans l'url en GET ou en SESSION(mais seulement si on peut pas voir le profil des autres utilisateurs) après on fait un fetch moi je le mais en objet ensuite on fait une condition ternaire en gros si $user->online est égale a 0 je mais "is-online" sinon je laisse les guillemet vide
et pour finir mettre a "0" le "Online" quand on se déconnecte il faut mettre a "0" le champ "Online" est après faire un sesseion_destroy
session_start();
require_once 'config/db.php';
$q = $db->prepare("UPDATE users SET online='0' WHERE pseudo = ?");
$q->execute([$_SESSION['pseudo']]);
donc on mais un session_start
après moi je require le fichier qui se charge de faire la connexion a la bdd
et je fait la requête on update dans la table users le champ online a "0" la ou le pseudo est égale a "$_SESSION['pseudo']" vu qu'on n'est dans la page de déconnexion ya pas d'id dans l'url et qu'on n'a toujours accès au session
FIN
j'espere que tu comprendra ce que j'ai écrit(niveau code) si ta un problème j’essayerais de t'aider même si mon système n'est pas très simple est qu'il n'est pas fiable a 100% par exemple si l’utilisateur se connecter quitte la page sans se déconnecter ben sa resterai afficher connecter pour toi je pense qu'il doit y avoir d'autre solution mais j'ai pas chercher car moi sa me suffisait
Flex Le 22 décembre 2016 à 11:27 (Édité le 1 janvier 1970 à 01:00)
Johan-Krn Le 23 décembre 2016 à 00:04 (Édité le 1 janvier 1970 à 01:00)
est je bloque car a chaque fois que j'avais une idée il fallait toujours que l'utilisateur change de page
je pense que c'est pas possible en php
car on peut pas savoir si l'utilisateur est sur la page
mais en js on peut j'ai trouver se topic
https://www.grafikart.fr/forum/topics/18488#p72254
par contre je peut pas tester j'ai plus d’écran j'espere que réussira
Flex Le 23 décembre 2016 à 17:16 (Édité le 1 janvier 1970 à 01:00)
Profil introuvable Le 28 décembre 2016 à 14:10 (Édité le 1 janvier 1970 à 01:00)