Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème TP sur le nombre de visiteurs connectés...

...

    13 mai 2006 à 15:09:45

    Salut...

    Voila, j'ai créé le script pour le TP mais il y a une erreur que je n'arrive pas a trouver...

    Mon script:

    <?php

    mysql_connect("localhost", "sasukerevenge", "****");
    mysql_select_db("connectes");

    // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\
    // ::::::: ON VÉRIFIE SI L'IP SE TROUVE DÉJÀ DANS LA TABLE ::::::: \\
    // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\

    // :: On compte le nombre d'entrées dont le champ "ip" est l'adresse Ip du visiteur :: \\
    $retour = mysql_query('SELECT COUNT(*) AS nbEntrees FROM connectes WHERE ip="' . $_SERVEUR['REMOTE_ADDR'] . '"') or die mysql_error(); // Selectionne le nombre d'entrées (nbEntrees) dans la table connectes quand le champ "ip" est égal à $_SERVEUR['REMOTE_ADDR'];
    $donnees = mysql_fetch_array($retour);

    if ($donnees['nbEntrees'] == 0) // Si l'Ip ne se trouve pas dans la table, on l'ajoute
    {
        mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVEUR['REMOTE_ADDR'] . '\', ' . time(); . ')') or die mysql_error();
    }
    else // Sinon, c'est que l'Ip se trouve déjà dans la table alors on met juste à jour le timestamp
    {
        mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVEUR['REMOTE_ADDR'] . '\'') or die mysql_error();
    }

    // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\
    // ::: ON SUPPRIME TOUTES LES ENTRÉES DONT LE TIMESTAMP EST PLUS VIEUX QUE 5 MINUTES ::: \\
    // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\

    // :: On stock dans une variable ($timestamp5min) le timestamp qu'il était il y a 5 minutes :: \\
    $timestamp5min = time() - (60 * 5); // 60 secondes x 5 minutes = 300 secondes
    mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp5min) or die mysql_error();

    // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\
    // ::: ON COMPTE LE NOMBRE DE VISITEUR GRACE AU NOMBRE D'IP STOCKÉS DANS LA TABLE ::: \\
    // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \\

    $retour = mysql_query('SELECT COUNT (*) AS nbEntrees FROM connectes') or die mysql_error(); // Selectionne le nombre d'Entrées dans la table "connectes"
    $donnees = mysql_fetch_array($retour);

    if ($donnees['nbEntrees'] == 1) // Si il n'y a qu'un visiteur sur le site
    {
    ?>
    <p>Il y a actuellement <?php $donnees['nbEntrees']; ?> ninja connecté</p>
    <?php
    }
    else
    {
    ?>
    <p>Il y a actuellement <?php $donnees['nbEntrees']; ?> ninjas connectés</p>
    <?php
    }

    mysql_close();
    ?>


    Quand je me connecte, le message d'erreur est le suivant:

    Citation : Erreur

    Parse error: syntax error, unexpected T_STRING in /mnt/112/sdc/8/6/sasukerevenge/connectes.php on line 11



    Pouvez-vous m'aider ?
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2006 à 15:19:51

      Salut,

      La seule erreur que je vois, c'est que tu as mis un "?>" en trop à la fin du script (donc pas la ligne 11).

      Essai de remplacer t'es \' par des doubles cottes dans tes requetes.

      @+

      Edit :
      Je veux dire remplace ça :
      $retour = mysql_query('SELECT COUNT(*) AS nbEntrees FROM connectes WHERE ip=\'' . $_SERVEUR['REMOTE_ADDR'] . '\'') or die mysql_error();

      Par ça :
      $retour = mysql_query('SELECT COUNT(*) AS nbEntrees FROM connectes WHERE ip="' . $_SERVEUR['REMOTE_ADDR'] . '"') or die mysql_error();
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 15:26:48

        J'ai corrigé mais sa ne change rien >_<
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2006 à 15:27:40

          Tu as corrigé le "?>" en trop, mais tu as essayé de changer tes requetes ?
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2006 à 15:30:14

            Oui oui j'ai tout changé...
            Je met a jour le script en haut.
            • Partager sur Facebook
            • Partager sur Twitter
              13 mai 2006 à 15:34:15

              LA ligne 11, c'est bien celle là non ?
              $retour = mysql_query('SELECT COUNT(*) AS nbEntrees FROM connectes WHERE ip="' . $_SERVEUR['REMOTE_ADDR'] . '"') or die mysql_error(); // Selectionne le nombre d'entrées (nbEntrees) dans la table connectes quand le champ "ip" est égal à $_SERVEUR['REMOTE_ADDR'];
              Ton script est bien connectes.php ?

              Maintenant que tu as modifié ta requete, le message d'erreur indique-t-il toujours une erreur à la ligne 11, ou le numéro de ligne a-t-il changé ?
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2006 à 15:49:52

                Dans le menu de mon "haut.php", j'ai insérer:

                <?php include("connectes.php"); ?>
                • Partager sur Facebook
                • Partager sur Twitter
                  13 mai 2006 à 15:57:14

                  En fait, tu ne répond pas à mes questions :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2006 à 16:09:36

                    JE crois savoir le problème :

                    ESt-il normal que ta base de donnée a le même nom que ta table ? o_O


                    Bye
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 mai 2006 à 16:16:54

                      J'ai changé le nom de la base (quelle bétise ^^ ) et j'ai résolu en partie mon problème...

                      Au lieu de mettre:



                      J'ai mis:



                      Par contre j'ai l'impression que ma base de donnée ne sauvegarde pas les adresse Ip...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Problème TP sur le nombre de visiteurs connectés...

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown