Tom's Guide > Forum > Programmation > PHP une nuit de recherche ... if qui passe pas...

PHP une nuit de recherche ... if qui passe pas...

Forum Programmation : PHP une nuit de recherche ... if qui passe pas...

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour... je poste car çA fait depuis hiere soir que je cherche et que je trouve pas, pourriez vous m'éclairer que j'aille me coucher ?

Bref le code c'est pour compter les visiteurs sur mon site c'est assez simple mais le probleme c'est que çA update jamais dans le if pourtant je vois pas de faute!!!

Code :
  1. $tps_max_connex = 180;
  2. $heure_max = $time-$tps_max_connex;
  3. $delete_innactifs = query('DELETE FROM stats_visiteurs WHERE time < "'.$heure_max.'"');
  4. $total_connexion = mysql_num_rows(query('SELECT * FROM stats_visiteurs WHERE ip='.$_SERVER['REMOTE_ADDR'].' '));
  5. if($total_connexion >= 1){$update_membres = query('UPDATE stats_visiteurs SET time=\''.$time.'\' WHERE ip=\''.$_SERVER['REMOTE_ADDR'].'\' ');}
  6. else{$ajout_membre = query('INSERT INTO stats_visiteurs VALUES(\''.$_SERVER['REMOTE_ADDR'].'\', \''.$time.'\', \'0\') ');}
  7. echo $total_connexion;

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

essaye avec mysql_query() plutôt que query()

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Salut,

Déjà tu n'as pas défini ta variable $time (peut-être l'aurais-tu fait plus haut dans la page ?). Donc faut la définir en début de script :

Code :
  1. $time = time();


Essaye comme ça, je n'ai pas regardé tout ton code, si ça ne marche pas redis le et je lirai la fin du code ;)

Répondre à Kianzo

pour query c'est une fonction ça a rien a voir car si je met mysql_query ça faoit la meme chose! et pour time il est defini plu haut

Répondre à DanielCosta@IDN

déjà, est-ce que tu passes dans ton if? (un echo de débugage te permettras de le savoir)
si tu n'y passes pas, fait un echo de ton $total_connexion.
Si tu y passes, fait un echo de ta requète et teste la dans phpmyadmin.
D'ailleurs, petite remarque en passant: "time" est un très mauvais nom de champ, il peut être reservé (comme les mot date, text, ...)

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Bon tout d'abord il ne faut jamais appeller un champ time. Prend timestamp, ou le nom que tu veux, mais évite time.

Ensuite, essaye avec un code plus propre :

Code :
  1. mysql_query('DELETE FROM stats_visiteurs WHERE time < "'.$heure_max.'"');
  2. $retour = mysql_query('SELECT COUNT(*) AS nb FROM stats_visiteurs WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"');
  3. $donnees = mysql_fetch_array($retour);
  4. if($donnees['nb'] >= 1)
  5. {
  6.     mysql_query('UPDATE stats_visiteurs SET time='.$time.' WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"');
  7. }
  8. else
  9. {
  10.     mysql_query('INSERT INTO stats_visiteurs VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.$time.'", "0" )');
  11. }
  12. echo $total_connexion;

Répondre à Kianzo

bien remis en forme, et du coup tu perds $total_connexion :)
à remplacer par $donnees['nb']

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Ah oui c'est juste, j'ai oublié ça ^^

Répondre à Kianzo

enfaite mon code est bien mis en forme sauf sur idn ça le compacte, et l'erreur j'ai trouvé, figurez vous que mon champs ip était VARCHAR(10) alors que une ip fait au maximum 15 caracteres. et donc mysql inséré juste mais coupé l'ip ce qui fait que la verifications passait mal. là je me met au GD pour que ça représente sous forme de barre :) bref merci a vous

Répondre à DanielCosta@IDN
Tom's Guide > Forum > Programmation > PHP une nuit de recherche ... if qui passe pas...
Aller à :

Il y a 2373 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens