nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
4 juin 2008 à 18:44
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
5 juin 2008 à 16:15
Salut,
J'ai une table session qui contient tout les membres inscrits et j'ai une autre table connect qui contient tout les membres connectés ...
J'ai un code qui est censé afficher une image si le membre est connecté mais ça ne marche pas !
bcmfr
Messages postés137Date d'inscriptionjeudi 18 juillet 2002StatutMembreDernière intervention20 novembre 2016 4 juin 2008 à 21:00
Slt
session_is_registered, il me semble que c'est pas top pour savoir si la session est utilisée non? C'est pas ca la cause mais c juste une remarque comme ca...
@+
emperor01
Messages postés25Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention 7 juin 2008 5 juin 2008 à 03:36
Tu as essayer l'ajax.
1ere etape
tu fais un script qui fait une ecriture dans ta table de connexion en php prenant une variable en GET,
puis tout les autant de temps tu fais une inscription dans la base.
2eme etape
un script cron.php qui vide la table a intervalle regulier
Resultat : Tant que l'utilisateur à sa page ouverte il dit qu'il est connecter et tu as un rafraichissement variable en fonction du cron.
c une idée comme une autre et sans cette vilaine table des "sessions Active" lol
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 juin 2008 à 04:25
salut
coder salement nuit a la lisibilite...
ensuite, nicomilville, ton algo est en n*n, c'est a dire que si tu as n membres, alors tu auras n*n passages dans ce while : while($row2 = mysql_fetch_array($retour2)) { et ca c'est tres violent... tu peux optimiser ca avec un where.
ensuite, faire un :
else {
echo "";
}
ca embrouille les gens et ca sert a rien.
ton html est vieux.
n'utilise pas session_is_registered mais utilise isset($_SESSION['truc'])
enfin, utiliser les " ca ralentit ton script pour rien.
sinon, voila un equivalent de ton code, mais en BEAUCOUP plus rapide :
<?php
$query2 = 'SELECT 1 FROM '.$tb_connect.'
WHERE `User_login`="'.$row['User_Login'].'"';
$retour2 = mysql_query($query2);
$row2 = mysql_fetch_array($retour2
if ($row2 !== false){
?>....<?php
}
?>
le truc, c'est que $tb_connect, je ne sais pas ce qu'elle contient, mais a mon avis, c'est les membres, et pas seulement ceux qui sont connectes...
pour y remedier, tu peux ajouter une requete UPDATE qui mette a jours une "date de dernier passage" et ajouter un WHERE DIFF_TIME(NOW, dernier_passage) < 5*60
je me suis peut-etre plante sur ce where, j'ai pas la doc sous les yeux, mais le principe y est.
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 5 juin 2008 à 06:51
Salut tout le monde,
emperor01, ajax ne me tente pas trop... mais si il n'y avait que cette solution j'aurai fait avec...
coucou747 : ce code est effectivement sale (il est vieu de 4 ans) son créateur m'a demané a moi et a un collègue de le remetttre en état et d'ajouter des fonction... ce qui est sur c'est que ce n'est pas du html et en plus c'était en php3 d'ou le session_is_requistered....
La table $tb_connect contient les membres connectés, elle est actualisé toute les 10 secondes... je ne comprend pas j'ai une requête semblable dans une autre page qui n'affiche que les membre connecté et ça marche donc...
Dans la table $tb_connect il y a comme je l'ai dit plus haut les membre connectés seuleument elle contient les champs suivant :
- dateDebut (date de debut de la session : timestamp)
- dateFin (date de la fin de la session : timestamp)
- ip (ip du membre connecté)
- login (pseudo des membres connectés)
Je ne comprend pas poourquoi mon code ne marche pas !
Si vous avez une petite idée...
Merci de m'aider
a++
Si la réponse vous convient, pensez : Réponse accepté !
emperor01
Messages postés25Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention 7 juin 2008 5 juin 2008 à 14:39
si tu es sous linux verifie les noms des champs car mysql sous linux tient compte de la casse. Notament ligne 112 : $row['User_Login'] car tout les autres noms de champ sont en minuscule ???