Membre connecté ?

Répondre
slyckers
le 20/06/2009 à 13:18
slyckers
J'ai bien compris le sens mais je n'arrive pas du tout a faire ce que je veux et là je viens même d'effacer les membres :( mouarf j'en ai marre...
EN fait j'ai rajouté le champ ip, et time dans ma table membre j'ai déjà un id, login , pass_md5, email, date, ip, time ... je ne sais vraiment pas comment interroger ma bdd....as-tu un exemple de jointure qui récupère l'id connecté ?
Merci par avance.
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
LA GLOBULE
le 20/06/2009 à 23:25
LA GLOBULE
Pourquoi as tu modifié ta table de membre au lieu de créer une table contenant les utilisateurs en ligne ?

Si tu n'écoutes pas les conseils, cela ne sert à rien d'aller plus loin.

C'est juste stupide de faire des traitements sur une table membre (qui a potentiellement beaucoup plus de ligne que le nombre de personne en ligne) lorsque les membres se connectent, car durant ces modifications (si tu es en MyISAM), ta table sera lockée le temps du traitement, et plus aucun SELECT ne passera sur cette table (du coup, les gens ne pourront plus se loguer).

En même temps, cela ne risque pas d'arriver avec un nombre de visiteur limité (j'entends par la genre moins de 1000 personnes connectées sur le site), mais autant prendre les bonnes habitudes.
slyckers
le 20/06/2009 à 23:41
slyckers
Bon ok.
Alors je reprends tout, car c'est me suis perdu là moi...


<?php

// lancement de la requete
$sql = 'SELECT login FROM pymembres ';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);

// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>

Le login est :<br />
<?php echo $data['login']; ?>

Cela m'affiche le premier membre de ma base connecté ou pas...
On est d'accord ?
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 20/06/2009 à 23:46
slyckers
Maintenant j'ai un champ 'lastlog' il y a la dernière connexion et l'ip... 20/06/2009 à 23h25 | 82.***.***.***|
As-tu une idée ou la syntaxe qu'il faut que j'utilise stp ?
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 22/06/2009 à 20:42
slyckers
Re depuis le temps...
Bon en cherchant un peu sur le net je suis tombé sur une personne qui a eu cette idée...

Son code avant
<?php
$var = '20/06/2009 à 14h33 | 255.255.255.255|';
$var2 = preg_split("/[\/\shà]+/", $var);
$timestamp_derniere_visite = mktime($var2[3], $var2[4], 0, $var2[1], $var2[0], $var2[2]);

// Test basé sur les 5 dernières minutes
echo 'Machin '.(($timestamp_derniere_visite >= time() - 300) ? 'est' : 'n\'est pas').' connecté.<br />';
// Test basé sur les dernières 24 heures
echo 'Machin '.(($timestamp_derniere_visite >= time() - 86400) ? 'est' : 'n\'est pas').' connecté.';
?>


Code après...
<?php

$var = '20/06/2009 à 14h33 | 255.255.255.255|';
$var2 = preg_split("/[\/\shà]+/", $var);
$timestamp_derniere_visite = mktime($var2[3], $var2[4], 0, $var2[1], $var2[0], $var2[2]);

// Test basé sur les 5 dernières minutes
echo "".$data['login']."".(($timestamp_derniere_visite >= time() - 300) ? 'est' : 'n\'est pas')." connecté.<br />";
// Test basé sur les dernières 24 heures
echo "".$data['login']."".(($timestamp_derniere_visite >= time() - 86400) ? 'est' : 'n\'est pas')." connecté.";


?>

Le soucis c'est que cela n'affiche aucun membre connecté (pourtant je le suis...
par contre sur la ligne $var ma base de donnée affiche plus de chose alors je ne sais pas si c'est dû à cela (22/06/2009 à 20h20 | **.***.***.***| **-***-***-***.rev.libertysurf.net)
Merci de me donner un coup de main.
@plus
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 22/06/2009 à 23:46
slyckers
Après galère...
J'y suis presque mais il y a tous mes membres qui s'affichent...
une idée ?
<?php

$connect = mysql_connect("localhost","root","****");
mysql_select_db("****", $connect);
$rMembresConnectes = mysql_query('SELECT login, lastlog FROM pymembres');
while($Membre = mysql_fetch_assoc($rMembresConnectes));
{
$var = preg_split("/[\/\shà]+/", $Membre['lastlog']);
if(mktime($var2[3], $var2[4], 0, $var2[1], $var2[0], $var2[2]) >= time() - 30);
echo $Membre['login'].' est connecté.<br />';
}
?>


Merci
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 23/06/2009 à 09:11
slyckers
Bonjour,
là le membre s'affiche mais il este toujours connecté même qd il se deconnecte...il faut surement indérer un delete from... mais là je ne sais ps faire...
<?php

$connect = mysql_connect("localhost","root","****");
mysql_select_db("****", $connect);

$rMembresConnectes = mysql_query('SELECT login FROM pymembres WHERE last >='.(time() - 150));
while($Membre = mysql_fetch_assoc($rMembresConnectes))

{
echo $Membre['login'].' est connecté.<br />';
}

mysql_close($connect);
?>
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 23/06/2009 à 10:02
slyckers
Ok c'est même évident mais bon j'apprends...Maintenant j'ai une question si je reprends le script afficher le nombbre de connectés...donc une table différente que celle de mon espace membre. Si je rajoute un champ ip dans ma table pymembres, serait-il possible de comparer les deux ip (et si c'est une ip identique, j'affiche le pseudo de ma table pymebres ?
Merci
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
slyckers
le 23/06/2009 à 10:22
slyckers
Cela s'appelle une jointure apparemment... je pourrais donc faire
<?php SELECT pymembres.login FROM pymembres,nb_connecte WHERE pymembres.ip=nb_connecte.ip

echo "".$data['login']."";
?>


En gros ça peut tenir la route ?
Je suis un guerrier et un insatisfait permanent, c’est ça l’apanage du champion :)
Répondre
LoadingChargement en cours