CHMOD sur free??

Eléphant du PHP | 258 Messages

28 sept. 2005, 18:04

le plus simple est de vous montrer mon script
<? 
// Connexion à MySQL 
mysql_connect("sql.free.fr", "xxxxxxxxxxxx", "xxxxx"); 
mysql_select_db("gb_recordconnect"); 
//$dbtable= "gb_recordconnect";

// ------- 
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table 
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur 
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM gb_recordconnect WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
$donnees = mysql_fetch_array($retour); 

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter 
{ 
    mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')'); 
} 
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp 
{ 
    mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
} 

// ------- 
// 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 : 
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes 
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min); 

// ------- 
// 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 gb_recordconnect'); 
$donnees = mysql_fetch_array($retour); 


// Ouf ! On n'a plus qu'à afficher le nombre de connectés ! 
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur mon site !</p>'; 

// Recherche du nombre de connectes 
//ajuste les données de la requete id et table 
$query="SELECT COUNT(ip) as maxrecord FROM gb_recordconnect"; 
$sql_result = mysql_query($query); 
$nb_actuel=mysql_fetch_assoc($sql_result);

//traitement du fichier -> lecture du record 
$fichier_text="record.txt"; 
$f=fopen($fichier_text,"r+"); 
$record = fread ($f, filesize ($fichier_text)); 


if($record<$nb_actuel)  //si la valeur lue dans le fichier est inferieure alors on écrase le fichier avec la nouvelle valeur 
  { 
       rewind ($f); 
       fwrite($f, $nb_actuel); 
       $record=$nb_actuel; 
        
   } 
fclose($f); 
echo "Le record de connectés est: ".$record['Record'];
?> 
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

ViPHP
pjl
ViPHP | 2119 Messages

28 sept. 2005, 18:11

regarde la doc pour mysql_fetch_assoc, tu verras de suite ou est ton erreur et je t'encourage fortement à faire ce que j'ai écrit au dessus, tu gagneras beaucoup de temps en faisant tes scripts.

Eléphant du PHP | 258 Messages

28 sept. 2005, 20:02

désolé
tjrsq pas compris
j'ai pas un bon francais puisque je suis sourd
j'espere que tu me comprends
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

ViPHP
pjl
ViPHP | 2119 Messages

28 sept. 2005, 21:03

regarde la doc : http://fr3.php.net/manual/fr/function.m ... -assoc.php

ensuite regarde la manière dont tu utilises mysql_fetch_assoc.

Tu vas voir de suite ton erreur.

Eléphant du PHP | 258 Messages

28 sept. 2005, 21:50

oui ca y est
j'ai compris

mais les chiffres sont restées immobiles et inchangées

bizarre?
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 sept. 2005, 01:25

oui ca y est
j'ai compris?
Tu peut remontrer comment tu a fait pour récupèrer les données de la BD ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 258 Messages

29 sept. 2005, 06:42

salut

voici le code php:
<? 
// Connexion à MySQL 
mysql_connect("sql.free.fr", "xxxxx", "xxxxx"); 
mysql_select_db("gb_recordconnect"); 
//$dbtable= "gb_recordconnect";

// ------- 
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table 
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur 
$retour = mysql_query('SELECT COUNT(ip) AS nbre_entrees FROM gb_recordconnect WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
$donnees = mysql_fetch_array($retour); 

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter 
{ 
    mysql_query('INSERT INTO gb_recordconnect VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')'); 
} 
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp 
{ 
    mysql_query('UPDATE gb_recordconnect SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
} 

// ------- 
// 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 : 
$timestamp_5min = time() - (60 * 1); // 60 * 5 = nombre de secondes écoulées en 5 minutes 
mysql_query('DELETE FROM gb_recordconnect WHERE timestamp < ' . $timestamp_5min); 

// ------- 
// 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(ip) AS nbre_entrees FROM gb_recordconnect'); 
$donnees = mysql_fetch_array($retour); 


// Ouf ! On n'a plus qu'à afficher le nombre de connectés ! 
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur mon site !</p>'; 

// Recherche du nombre de gb_recordconnect 
//ajuste les données de la requete id et table 
$query		= "SELECT COUNT(ip) as maxrecord FROM gb_recordconnect"; 
$sql_result = mysql_query($query); 
while ($nb_actuel 	= mysql_fetch_assoc($sql_result))
{
echo $row['ip'];
}
mysql_free_result($sql_result);

//traitement du fichier -> lecture du record 
$fichier_text="record.txt"; 
$f=fopen($fichier_text,"r+"); 
$record = fread ($f, filesize ($fichier_text));
; 



if($record<$nb_actuel)  //si la valeur lue dans le fichier est inferieure alors on écrase le fichier avec la nouvelle valeur 
  { 
       rewind ($f); 
       fwrite($f, $nb_actuel); 
       $record=$nb_actuel; 
        
   } 
fclose($f); 
echo "Le record de connectés est: ".$record['maxrecord'];

?> 
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 258 Messages

29 sept. 2005, 07:02

et les resultats:

un seul ip enregistré dans la base de données puisque je suis connecté dessus

et dans le fichier le chiffre est 1

mais il y a avait bcp de connectés!!
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 sept. 2005, 13:01

Ton code n'est pas cohérant, tu devrai meme avoir une erreur mysql avec ceci:
echo $row['ip'];
$row n'est pas définit dans la boucle puisque tu affecte le mysql_fetch_array() à $nb_actuel et non $row :wink:

pour eviter la boucle (inutile) tu aurai pu reprendre la requete de mon code a savoir:
$query="SELECT COUNT(ip) FROM table";
$sql_result = mysql_query($query);
$nb_actuel=mysql_result($result, 0,0); 
comme ça tu as le nombre d'IP de la table directement
dans $nb_actuel. Tu as voulu aller un peu vite eet du
coup tu as mélangé des variables :wink:

Pareil pour le test de la valeur du fichier et du nombre
acctuel, dans ton code il ne se passe pas grand chose
normal puisque $nb_actuel ne vaut rien !!

Attention un point virgule en trop s'est glissé dans ton
code la ligne apres la lecture de la valeur du fichier!!!

Voila je ne te donne pas la soluce tout de suite mais
avec les éléments que je viens de te donner tu arrivera
a arrager ton code :D

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

29 sept. 2005, 14:45

ah enfin
j'ai réussi

pour les points virgules, j'étais étourdi

et pour le reste, ca a été un peu difficile car j'ai pas vrt les notions approfondis de PHP

merci quand meme pour tout et surtout ta patience

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 sept. 2005, 14:47

Si tu as réussi : mets le flag Résolu.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 258 Messages

29 sept. 2005, 14:47

c'était moi en haut j'oubliais de me connecter

voici le code du script (bon) pour FREE:


<? 
// Connexion à MySQL 
mysql_connect("sql.free.fr", "xxxxxx", "xxxxxx"); 
mysql_select_db("gb_recordconnect"); 
//$dbtable= "gb_recordconnect";

// ------- 
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table 
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur 
$retour = mysql_query('SELECT COUNT(ip) AS nbre_entrees FROM gb_recordconnect WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
$donnees = mysql_fetch_array($retour); 

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter 
{ 
    mysql_query('INSERT INTO gb_recordconnect VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')'); 
} 
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp 
{ 
    mysql_query('UPDATE gb_recordconnect SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''); 
} 

// ------- 
// 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 : 
$timestamp_5min = time() - (60 * 1); // 60 * 5 = nombre de secondes écoulées en 5 minutes 
mysql_query('DELETE FROM gb_recordconnect WHERE timestamp < ' . $timestamp_5min); 

// ------- 
// 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(ip) AS nbre_entrees FROM gb_recordconnect'); 
$donnees = mysql_fetch_array($retour); 


// Ouf ! On n'a plus qu'à afficher le nombre de connectés ! 
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur mon site !</p>'; 

// Recherche du nombre de gb_recordconnect 
//ajuste les données de la requete id et table 

$query="SELECT COUNT(ip) FROM gb_recordconnect"; 
$sql_result = mysql_query($query); 
$nb_actuel=mysql_result($sql_result, 0,0); 

//traitement du fichier -> lecture du record 
$fichier_text="record.txt"; 
$f=fopen($fichier_text,"r+"); 
$record = fread ($f, filesize ($fichier_text));



if($record<$nb_actuel)  //si la valeur lue dans le fichier est inferieure alors on écrase le fichier avec la nouvelle valeur 
  { 
       rewind ($f); 
       fwrite($f, $nb_actuel); 
       $record=$nb_actuel; 
        
   } 
fclose($f); 
echo "Le record de connectés est: ".$record['maxrecord'];

?> 
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 sept. 2005, 14:55

ouaip, c'est vrai qu'il été temps de mettre ce sujet en résolu, on dois pas etre loin du post le plus long :lol:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
pjl
ViPHP | 2119 Messages

29 sept. 2005, 17:10

ouaip, c'est vrai qu'il été temps de mettre ce sujet en résolu, on dois pas etre loin du post le plus long :lol:
Oh non, y'en a un plus long que celà et pas résolu et un autre dont on est sans nouvelle qui a été coupé en 3 ou 4 posts.