CONNECTÉS (UTILISATION DE MYSQL)

Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004 - 6 juin 2004 à 16:31
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 22 juin 2005 à 16:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23442-connectes-utilisation-de-mysql

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
22 juin 2005 à 16:29
Salut!
Normalement, c'est .inc.php: connect.inc.php pour éviter les pbs...

@++

R@f
Sentences Messages postés 1 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 21 juin 2005
21 juin 2005 à 15:42
euh...
tout le monde peu voir le fichier connect.inc donc les infos...
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
5 mars 2005 à 16:15
Salut!
Les variables définies en dehors de fonctions ne sont pas accessibles par défaut...

Il faut commencer par les passer en global. Au début de la fonction, rajoute:
global $shost,$suser,$spass, $sbase;

@++

R@f
phenix3980 Messages postés 28 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 17 mai 2006
3 mars 2005 à 01:46
---connect.php----
<?php
$shost = 'localhost';
$suser = 'root';
$spass = '';
$sbase = 'test';
?>

---connecter.php----

<?php
session_start();
$_SESSION['nom'] = 'raf';
include("connect.php");

// fonction a appeler au début de vos pages
function connectes()
{
$temps = 5;

if(mysql_connect($shost,$suser,$spass))
mysql_select_db($sbase, $connect);
else
return;

// ip du client
$ip = $_SERVER['REMOTE_ADDR'];

// pseudo
$pseudo = empty($_SESSION['nom']) ? '' : $_SESSION['nom'];

// time actuel
$time = time();

// on recherche l'utilsateur
$sql_query = "SELECT * FROM connectes where ip='$ip'";
$result = mysql_query($sql_query);

if(!$result)
return;

// si l'utilisateur n'est pas deja dans la table
if(mysql_num_rows($result) == 0)
{
$sql_query = "INSERT INTO connectes VALUES ('$ip', '$time', '$pseudo')";
$result = mysql_query($sql_query);

if(!$result)
return;
}
// mise-à-jour
else
{
$sql_query = "UPDATE connectes SET derniere='$time', pseudo='$pseudo' WHERE ip='$ip'";

$result = mysql_query($sql_query);

if(!$result)
return;
}

// temps d'incativité
$time -= $temps * 60;

// on supprime ceux qui n'ont pas été connectés depuis assez longtemps
$sql_query = "DELETE LOW_PRIORITY FROM connectes WHERE derniere <= $time";
$result = mysql_query($sql_query);

mysql_close();
}

connectes();


// Affichage des connectés, à mettre ou vous voulez ;-)
$stop = 0;

if(mysql_connect($shost,$suser,$spass))
mysql_select_db($sbase, $connect);
else
$stop = 1;

if(!$stop)
{
$sql_query = "SELECT pseudo FROM connectes WHERE pseudo <> ''";
$result = mysql_query($sql_query);

if(!$result)
$stop = 1;
else
{
echo 'Connectés:
';

while($connecte = mysql_fetch_array($result))
echo $connecte[0] . '
';
}
}

if($stop == 0)
{
$sql_query "SELECT count(*) FROM connectes WHERE pseudo ''";
$result = mysql_query($sql_query);

if($result)
{
$visiteurs = mysql_fetch_array($result);

echo '
Visiteurs:
' . $visiteurs[0];
}
}

mysql_close();
?>

j'ai erreur ligne 11 et 69
if(mysql_connect($shost,$suser,$spass))


Warning: mysql_connect(): Access denied for user: 'ODBC@localhost' (Using password: NO) in .\connecter.php on line 11

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in .\connecter.php on line 69


pk sa marche po?
flashfun Messages postés 296 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 11 septembre 2004
20 août 2004 à 18:39
Pour vérifier le programme, insérez un

echo "Voici ou c'est rendu.";

avant chaque

return

.
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
9 juin 2004 à 12:57
oui mais sa psot pas dans la sql !!
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
8 juin 2004 à 15:45
Je t'ai proposé une petite modif pour tenir compte de ta variable pseudo, que tu n'as pas voulue, je vais pas te refaire complètement le script!

@++

R@
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
8 juin 2004 à 14:50
t1 mais sa ve pas enregsitrer dans la table les donner du pseudo !!!
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
8 juin 2004 à 13:22
je n'y arrive pas help me!!!
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
7 juin 2004 à 10:28
c pas bon regarde
$sql_query = "SELECT * FROM connectes where ip='$ip'";
la sa recherche l'ip pour stoker si oui ou non les pseudo est dans la table...ce ke je voudrais sa ke sa rechecrhe le pseudo et non l'ip!lol
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 juin 2004 à 10:24
Salut!
// fonction a appeler au début de vos pages
function connectes($pseudo)
{
$temps = 5;

if(mysql_connect(BDD_HOST, BDD_PSEUDO, BDD_PASS))
mysql_select_db(BDD_BDD);
else
return;

// ip du client
$ip = $_SERVER['REMOTE_ADDR'];

// pseudo
$pseudo = empty($pseudo) ? '' : $pseudo;

// time actuel
$time = time();

// on recherche l'utilsateur
$sql_query = "SELECT * FROM connectes where ip='$ip'";
$result = mysql_query($sql_query);

if(!$result)
return;

// si l'utilisateur n'est pas deja dans la table
if(mysql_num_rows($result) == 0)
{
$sql_query = "INSERT INTO connectes VALUES ('$ip', '$time', '$pseudo')";
$result = mysql_query($sql_query);

if(!$result)
return;
}
// mise-à-jour
else
{
$sql_query = "UPDATE connectes SET derniere='$time', pseudo='$pseudo' WHERE ip='$ip'";

$result = mysql_query($sql_query);

if(!$result)
return;
}

// temps d'incativité
$time -= $temps * 60;

// on supprime ceux qui n'ont pas été connectés depuis assez longtemps
$sql_query = "DELETE LOW_PRIORITY FROM connectes WHERE derniere <= $time";
$result = mysql_query($sql_query);

mysql_close();
}

Et apelle la fonction avec: connectes($pseudo); $pseudo valant '' si le gars ets pas connecte!

@++

R@f
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
7 juin 2004 à 10:19
nan juste une varible $pseudo .. et pour l'ip je mais de coter sa me sert a rien!c possible de faire marcher ton script kavec les variable??
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 juin 2004 à 10:15
Salut!
L'ip est utile pour reprérer les visiteurs non enregistrés ainsi que ceux qui changent de pseudo en cours de route...

Ta variable pseudo est de quel type? Variable de session?

@++

R@f
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
6 juin 2004 à 23:24
ma variable de mon chat c $pseudo comment faire pour tu sa cherche l'ip sur la table et affiche etc..on pe pas metre ke sa cherche lepseudo au lieu de l'ip??
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
6 juin 2004 à 21:53
Salut!
Ben je sais pas trop, car j'ai fais un copié coller du script ci-dessus et ca marche...

Si tu veux, contact moi par MP pour qu'on voie.

@++

R@f
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
6 juin 2004 à 21:44
jarrive pas a faire fonctionez
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
6 juin 2004 à 18:32
Salut!
Je viens de faire un test, concluant, avec et sans valeur à $_SESSION['nom']...

Voici la version avec, oublie pas les infos de connection mysql
<?php
session_start();
$_SESSION['nom'] = 'raf';

// fonction a appeler au début  de vos pages
function connectes()
{
    $temps = 5;
    
    if(mysql_connect(BDD_HOST, BDD_PSEUDO, BDD_PASS))
mysql_select_db(BDD_BDD);
    else
        return;
        
    // ip du client
    $ip = $_SERVER['REMOTE_ADDR'];
    
    // pseudo
    $pseudo = empty($_SESSION['nom']) ? '' : $_SESSION['nom'];
    
    // time actuel
    $time = time();

    // on recherche l'utilsateur
    $sql_query = "SELECT * FROM connectes where ip='$ip'";
    $result = mysql_query($sql_query);
    
    if(!$result)
        return;
    
    // si l'utilisateur n'est pas deja dans la table
    if(mysql_num_rows($result) == 0)
    {
        $sql_query = "INSERT INTO connectes VALUES ('$ip', '$time', '$pseudo')";
        $result = mysql_query($sql_query);
        
        if(!$result)
            return;
    }
    // mise-à-jour
    else
    {
        $sql_query = "UPDATE connectes SET derniere='$time', pseudo='$pseudo' WHERE ip='$ip'";
        
        $result = mysql_query($sql_query);
        
        if(!$result)
            return;
    }
    
    // temps d'incativité
    $time -= $temps * 60;
    
    // on supprime ceux qui n'ont pas été connectés depuis assez longtemps
    $sql_query = "DELETE LOW_PRIORITY FROM connectes WHERE derniere <= $time";
    $result = mysql_query($sql_query);
    
    mysql_close();
}

connectes();


// Affichage des connectés, à mettre ou vous voulez ;-)
$stop = 0;
            
if(mysql_connect(BDD_HOST, BDD_PSEUDO, BDD_PASS))
mysql_select_db(BDD_BDD);
else
  $stop = 1;
                        
if(!$stop)
{
    $sql_query = "SELECT pseudo FROM connectes WHERE pseudo <> ''";
    $result = mysql_query($sql_query);
                        
    if(!$result)
        $stop = 1;
    else
    {
        echo 'Connectés:
';
                            
        while($connecte = mysql_fetch_array($result))
            echo $connecte[0] . '
';
    }   
}
                    
if($stop == 0)
{
    $sql_query "SELECT count(*) FROM connectes WHERE pseudo ''";
    $result = mysql_query($sql_query);
                        
    if($result)
    {
        $visiteurs = mysql_fetch_array($result);
                            
        echo '
Visiteurs:
' . $visiteurs[0];
    }
}
                    
mysql_close();
?>


Et il m'affichait bien:
Connectés:
raf

Visiteurs:
0

@++

R@f
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
6 juin 2004 à 17:57
jarrive pas a le faire fonctionez sa enregistre rien dans la table sql
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
6 juin 2004 à 16:54
Salut!
J'ai pas trop compeis, c'est quoi le problème?

@++

R@f
Wars007 Messages postés 28 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 15 novembre 2004
6 juin 2004 à 16:31
Il y a une erreur il ne faut pas mettre la function connectes() car sinon sa enregsitre pas dans la table sql
Rejoignez-nous