[php] J'ai encore fais une petite étourderie

Fermé
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 - 15 nov. 2005 à 18:04
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 - 16 nov. 2005 à 12:28
--
C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
Bonjour à tous, je pense que vous me connaissez sufisaiment, je suis assez étourdi quand je fais un code... malheureusement, ça arrive encore ! je vous donne mon code et je vous explique :

<? $ip1=$_SERVER['REMOTE_ADDR']; $timestamp= time() - (60 * 720);
$dbc = @mysql_connect ("http://sql.free.fr", "codg82", "*****");

if(!mysql_errno($dbc)) {
    mysql_select_db("codg82");

    $query = "SELECT *FROM visiteurs";
    $query .= " WHERE ip='$_ip1'";

    $req = mysql_query($query);

    if(mysql_num_rows($req)==0) {   
$req1 = "insert into visiteurs values( '' , '".$ip1."' , '".$timestamp

."')";
mysql_query($req1);}
else
{
    mysql_query('UPDATE visiteurs WHERE ip='$ip1'');
}

// -------
// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus 

vieux que 5 minutes

// On stocke dans une variable le timestamp qu'il était il y a 5 

minutes :
 // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM visiteurs WHERE $timestamp='$timestamp'');

// -------
// ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le 

nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM visiteurs'

);
$donnees = mysql_fetch_array($retour);

// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo '<p>' . $donnees['nbre_entrees'] . ' visiteurs ont visitaient le 

site OLYMPE DE GOUGES !</p>'; } mysql_close();?>

en fait c'est un conteur de connectés depuis la construction du site... donc là l'ip du visiteurs est supprimer de la bdd toute les 12 heure si j'ai bien fais mon calcum avec le timestamp... j'ai une erreur à la ligne 17 que voici :
Parse error: parse error, unexpected T_VARIABLE in /var/www/free.fr/0/2/codg82/visiteurs1.php on line 17
je pense que c'est l'ors de la mise à jour de l'IP dans la bdd...
info :ne lisez pas les commentaires qui sont dans le script, elles sont complètement fauce !
merci beaucoup !
Fabrice

6 réponses

CrazyCanuck Messages postés 66 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 26 juillet 2006 67
16 nov. 2005 à 01:05
mysql_query("UPDATE visiteurs WHERE ip='".$ip1.''')";

au lieu de

mysql_query('UPDATE visiteurs WHERE ip='$ip1''); ?
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
16 nov. 2005 à 07:39
mysql_query('DELETE FROM visiteurs WHERE $timestamp='$timestamp'');

un quote dans un quote ?
0
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 64
16 nov. 2005 à 07:39
Bonjour, merci de m'aider... donc à parament pour cette erreur ça a l'air bon... et oui c'est vrai qu'après lecture je trouve mon erreur...
par contre nouvelle erreur à la ligne 22 qui me semble faux mais là pour les timestamp je n'ai jamais utilisé :
voici le new code :
<? $ip1=$_SERVER['REMOTE_ADDR']; $timestamp= time() - (60 * 720);
$dbc = @mysql_connect ("http://sql.free.fr", "codg82", "******");

if(!mysql_errno($dbc)) {
    mysql_select_db("codg82");

    $query = "SELECT *FROM visiteurs";
    $query .= " WHERE ip='$_ip1'";

    $req = mysql_query($query);

    if(mysql_num_rows($req)==0) {   
$req1 = "insert into visiteurs values( '' , '".$ip1."' , '".$timestamp."')";
mysql_query($req1);}
else
{mysql_query("UPDATE visiteurs WHERE ip='".$ip1.''')";
}

// -------
// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
 // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM visiteurs WHERE $timestamp='$timestamp'');

// -------
// ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM visiteurs');
$donnees = mysql_fetch_array($retour);

// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo '<p>' . $donnees['nbre_entrees'] . ' visiteurs ont visitaient le site OLYMPE DE GOUGES !</p>'; } mysql_close();?>

voici le message parce error :
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/free.fr/0/2/codg82/visiteurs1.php on line 22
merci de votre aide !
fabrice
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
16 nov. 2005 à 10:09
Pourquoi tu t'ennuis a mettre
<itral>mysql_query("UPDATE visiteurs WHERE ip='".$ip1.''')";

Alors que c'est plus facile a lire (et pour pas se tromper) de mettre :
mysql_query("UPDATE visiteurs WHERE ip='$ip1')";

car les simple quote et double quote servent a ça, si t'es dans un simple tu peux ouvrir et fermer des doubles et comme le dirait les inconnu et vice et versa :P

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
16 nov. 2005 à 10:45
c'est laquelle la ligne 22 ? j'ai du mal à compte là.
sinon
mysql_query("UPDATE visiteurs WHERE ip='".$ip1.''')";

à l'air vraiment louche. regarde bien les quotes, quelque chose ne va pas.

et de toute façon, je ne vois pas ce que fait cette requête. Elle sert à quoi ?

Sinon :
mysql_query('DELETE FROM visiteurs WHERE $timestamp='$timestamp'');

est toujours faut au niveau de la syntaxe... voir mon message plus haut.
0
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 64
16 nov. 2005 à 12:28
Bonjour, en fais dans la requete update... là faudrai que ça mette à jour le timestamp je viens donc de me tromper...
je vais regarder mon code de plus près... merci
0