Créer un compte
Connexion

[Urgent]Espace membres : Connecté ?

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
Lolo44
22/12/2010 à 19:40:58
Lolo44
Membre
Bonjour,
Je voudrais ajouter en dessous du profil d'un membre s' il est connecté ou pas , comme celui qu'utilise le SDW...

Merci de vos réponses.


ipodtouchpro
23/12/2010 à 00:39:52
ipodtouchpro
Membre
Wai super idée mais dsl je ne sais pas comment faire

ipodtouchpro
23/12/2010 à 00:48:34
ipodtouchpro
Membre
Wai super idée mais dsl je ne sais pas comment faire

Eu dsl j'ai renvoyer le formulaire. :-.

Aglzime
23/12/2010 à 18:01:02
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Pour celà , il va falloir créer une table sur ta base de données ! table "connectes"!
cette table doit contenir 2 champs :
- Login
- timestamp
...


ipodtouchpro
23/12/2010 à 18:52:58
ipodtouchpro
Membre
Wai ok mais un code un peu plus complet serait un peu plus pratique

Lolo44
23/12/2010 à 20:08:31
Lolo44
Membre
ipodtouchpro : +1 XD
En plus , il n'y a pas que ca , il faut aussi du code php en plus de celui de création de la table...
Et je pense qu'il faut mettre "id" au lieu de login

blingcru
26/12/2010 à 17:37:16
blingcru
Membre
Bonsoir il existe plusieur facons le total, les membres ..
exactement il faudrais
id
username
timestamp et un

Apres sufit de vous faire un petit code style
$query = $db->execute(updapte....);

https://guerredesgangs.net & http://www.bazinio.ca & http://www.thestreet2.ca
blingcru
26/12/2010 à 17:38:12
blingcru
Membre
peux importe comment tu fais ta co updapte a ta db temp quelle sy connecte correctement et fais les bonnes choses ..

https://guerredesgangs.net & http://www.bazinio.ca & http://www.thestreet2.ca
ipodtouchpro
26/12/2010 à 19:09:35
ipodtouchpro
Membre
Wai mais j'aimerai un code complet à ajouter en clair juste a faire du copier/coller

Lolo44
28/12/2010 à 12:07:48
Lolo44
Membre
D'accord avec ipodtouchpro , et oui je sais : apprend le PHP !


ipodtouchpro
28/12/2010 à 12:58:34
ipodtouchpro
Membre
@L44 pour ce qui est du PHP je n'ai pas trop de problème

Lolo44
28/12/2010 à 14:56:05
Lolo44
Membre
Je ne dit pas ça pour toi , mais si tu demande un code a copier coller , on va te dire d'apprendre le PHP ...

ipodtouchpro
28/12/2010 à 19:20:17
ipodtouchpro
Membre
Wai c'est vrai xD.
J'aime bocou ton nouveau avatar.

Lolo44
29/12/2010 à 12:09:02
Lolo44
Membre
Merci, sinon pour le code , personne n'as une idée ? Comment tu as fait Ybouane?

ybouane
29/12/2010 à 17:04:27
ybouane
Admin
Bonjour,
J'avais déjà fait un code pour ça: membres connectés
Voici les codes à utiliser(avec quelques modifications):
Il faut créer une table cpt_connectes:
CREATE TABLE `cpt_connectes` (
  `pseudo` varchar(255) collate latin1_german2_ci NOT NULL,
  `timestamp` varchar(255) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Et pour afficher le nombre de membres connectés et leurs noms, il faut utiliser ce code:
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
if(isset($_SESSION['username']))
{
        $dnns = mysql_fetch_array(mysql_query('select count(pseudo) as nb from cpt_connectes where pseudo="'.$_SESSION['username'].'"'));
        if($dnns['nb']>0)
        {
                mysql_query('update cpt_connectes set timestamp="'.time().'" where pseudo="'.$_SESSION['username'].'"');
        }
        else
        {
                mysql_query('insert into cpt_connectes (pseudo, timestamp) values ("'.$_SESSION['username'].'", "'.time().'")');
        }
}
$times_m_5mins = time()-(60*5);
mysql_query('delete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_query('select pseudo from cpt_connectes');
$num = mysql_num_rows($dnns2);
echo 'Il y a actuellement <strong>'.$num.'</strong> membre(s) connect&eacute;(s)';
if($num>0)
{
        echo ':<br />';
        $i=0;
        while($dn2 = mysql_fetch_array($dnns2))
        {
                $i++;
                echo $dn2['pseudo'];
                if($i<$num)
                {
                        echo ',';
                }
        }
}
echo '.';
?>

Et en complément, utilisez ce code pour la page connexion.php de l'espace membre:
<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <title>Connection</title>
    </head>
    <body>
        <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
            </div>
<?php
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
        //On le deconecte en supprimant simplement les sessions username et userid
        mysql_query('delete from cpt_connectes where pseudo="'.$_SESSION['username'].'"');
        unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Vous avez bien &eacute;t&eacute; d&eacute;connect&eacute;.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
        $ousername = '';
        //On verifie si le formulaire a ete envoye
        if(isset($_POST['username'], $_POST['password']))
        {
                //On echappe les variables pour pouvoir les mettre dans des requetes SQL
                if(get_magic_quotes_gpc())
                {
                        $ousername = stripslashes($_POST['username']);
                        $username = mysql_real_escape_string(stripslashes($_POST['username']));
                        $password = stripslashes($_POST['password']);
                }
                else
                {
                        $username = mysql_real_escape_string($_POST['username']);
                        $password = $_POST['password'];
                }
                //On recupere le mot de passe de lutilisateur
                $req = mysql_query('select password,id from users where username="'.$username.'"');
                $dn = mysql_fetch_array($req);
                //On le compare a celui quil a entre et on verifie si le membre existe
                if($dn['password']==$password and mysql_num_rows($req)>0)
                {
                        //Si le mot de passe es bon, on ne vas pas afficher le formulaire
                        $form = false;
                        //On enregistre son pseudo dans la session username et son identifiant dans la session userid
                        $_SESSION['username'] = $_POST['username'];
                        $_SESSION['userid'] = $dn['id'];
?>
<div class="message">Vous avez bien &eacute;t&eacute; connect&eacute;. Vous pouvez acc&eacute;der &agrave; votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
                }
                else
                {
                        //Sinon, on indique que la combinaison nest pas bonne
                        $form = true;
                        $message = 'La combinaison que vous avez entr&eacute; n\'est pas bonne.';
                }
        }
        else
        {
                $form = true;
        }
        if($form)
        {
                //On affiche un message sil y a lieu
        if(isset($message))
        {
                echo '<div class="message">'.$message.'</div>';
        }
        //On affiche le formulaire
?>
<div class="content">
    <form action="connexion.php" method="post">
        Veuillez entrer vos identifiants pour vous connecter:<br />
        <div class="center">
            <label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
            <label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
            <input type="submit" value="Connection" />
                </div>
    </form>
</div>
<?php
        }
}
?>
                <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
        </body>
</html>

Cordialement :)

Image
ipodtouchpro
29/12/2010 à 17:40:19
ipodtouchpro
Membre
Merci sa marche nickel tes le meilleur Ybouane.
Et pour mettre sur son profil si il est connecter ou non tu sais comment faire?? O_o
Comme içi :: www.supportduweb.com/profil-2381.html

ybouane
30/12/2010 à 02:42:02
ybouane
Admin
Bonjour,
Il faut d'abord mettre le code que j'ai donné sur toutes les pages de ton site.
Et il faut ajouter ce code à la page "profile.php"
$cnn = mysql_fetch_array(mysql_query('select count(*) as nb from cpt_connectes where pseudo="'.mysql_real_escape_string($dnn['username']).'"'));
if($cnn['nb']>0)
{
        echo htmlentities($dnn['username']).' est actuellement connect&eacute;.';
}
else
{
        echo htmlentities($dnn['username']).' est actuellement d&eacute;connect&eacute;.';
}

Cordialement :)

Image
Lolo44
30/12/2010 à 13:44:14
Lolo44
Membre
Merci j'ai un petit pb d'hébergeur je testerais le script quand tout sera resolu (bientot je pense)

ipodtouchpro
30/12/2010 à 22:54:38
ipodtouchpro
Membre
A non ça ne marche pas nickel et je pense savoir pourquoi j'ai regarder ton code et au moment de la connexion je ne vois pas où tu écris dans la base de donnée qu'il se connecte mysql_query('INSERT INTO blabla'); Et comme je ne suis pas tres fort en PHP peu tu reformuler le script (Si ce que je dit est vrai) :p .

Merci

Lolo44
31/12/2010 à 00:17:39
Lolo44
Membre
Moi ca marche!

ybouane
31/12/2010 à 04:26:28
ybouane
Admin
Bonjour,
C'est dans le premier code que je t'ai donné, à la ligne 13:
mysql_query('insert into cpt_connectes (pseudo, timestamp) values ("'.$_SESSION['username'].'", "'.time().'")'); C'est important que tu mette le premier code dans toutes tes pages, c'est ce code qui fait le compte des connectés.

Le fonctionnement des codes que je t'ai donné est simple.
Le premier permet de compter les membres connectés. Lorsqu'il est exécuté, il vérifie si c'est un membre qui affiche la page, si c'est le cas, il l'ajoute à la BDD avec le timestamp actuel. Ensuite, Le script supprime toutes les lignes de la BDD qui datent de plus de 5 minutes. Car lorsque un membre n'affiche pas de nouvelles page depuis 5 minutes, il est considéré comme déconnecté. Et finalement, il affiche les membres connectés.

Le deuxième code permet de supprimer la ligne de la BDD lorsque l'utilisateur se déconnecte.



Cordialement :)

Image
blingcru
14/01/2011 à 04:32:28
blingcru
Membre
Il a un probleme avec le se code

quand nous instalons pouff la page dis erreur ^^
<?php
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
        //On le deconecte en supprimant simplement les sessions username et userid
        mysql_query('delete from cpt_connectes where pseudo="'.$_SESSION['username'].'"');
        unset($_SESSION['username'], $_SESSION['userid']);
?>


https://guerredesgangs.net & http://www.bazinio.ca & http://www.thestreet2.ca
blingcru
14/01/2011 à 04:54:20
blingcru
Membre
De plus la table garde pas les chose ^^ fesons une insert en base pour test et garde rien ^^

Probleme champ vachar .. nous instalons le pseudo donc il faut champ text .. et le timestamp pas en vachar mais en timestamp current timstamp .. la on peux entrer des choses ^^

mais cela change pas que sa fonctionne pas ..

https://guerredesgangs.net & http://www.bazinio.ca & http://www.thestreet2.ca
Lolo44
14/01/2011 à 18:07:59
Lolo44
Membre
Pour moi ca marche , c'est toi qui a peut etre un pb...

Pages: 1