CHMOD sur free??

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 sept. 2005, 17:22

Je suis pas sur du sens de la requete ... est ce que tu peut nous dire que qu'elle est sensée faire ?

pour info: un like s'utilise généralement avec un %, donc un truc du style:
LIKE '/include/mods/sf_nbconnect/PageDemo.php%'
Mais la je vois pas ce que tu veut afficher...

/!\ 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

25 sept. 2005, 17:35

en fait, j'ai repris le script publié dans www.comscripts.com

et puis les messages d'erreur s'affichent
donc je n'ai rien inventé

bon, pour vous aider, je mets le code php desous:
<?PHP
INCLUDE("Config.inc.php"); //Appel du module contenant les configurations

//-------------------------------------------------------------------------
//Ouverture d'acces a la base de donnees MySQL
//-------------------------------------------------------------------------
FUNCTION OpenBDD()
	{
	 //VARIABLES
	 //---------
	 //Parametres de connexion
	 // $dbhost : adresse FTP de l'hebergement (ex: localhost, ftp.monsite.tld, ....)
	 // $login  : nom du compte
	 // $Pass   : mot de passe
	 // $bdd    : nom de la base de donnees

	 GLOBAL $dbhost, $login, $pass, $bdd;

	 //connexion au serveur
	 $connexion = mysql_connect($dbhost,$login,$pass);
	 IF (!$connexion){ECHO "<BR>Connexion impossible<BR>";exit;}

	 //Selection de la BDD
	 $db=mysql_select_db("$bdd",$connexion);
	 IF (!$db){ECHO "<BR>Impossible de s&eacute;lectionner cette bdd<BR>";exit;}
	 RETURN $connexion;
	};

//-------------------------------------------------------------------------
// Le Module NC execute les fonctions suivantes :
//    - Temps conventionel (Date/Heure)
//    - Temps en format Unix (nombre de secondes apres le 1/1/1970)
//    - Verification si l'IP du visiteur existe deja dans la BDD
//    - Efface les enregistrements vieux de plus du $Delay fixe
//    - Insere ou update selon les elements du visiteur
//    - Calcule le nombre de connectes sur le site
//    - Calcule le nombre de connectes sur la page
//    - Affichage du nombre de connectes sur le site et sur la page
//-------------------------------------------------------------------------
FUNCTION NC($IP, $PageADRS)
	{
	 //DESCRIPTION DES VARIABLES
	 //-------------------------
	 // $IP       : Adresse IP du visiteur
	 // $PageADRS : Nom de la page
	 // $Delays   : Delai apres lequel le visiteur est considere comme ayant quitte le site

	 GLOBAL $Delay;

	 $TimeConnect = TIME();          //Temps Unix
	 $TimeTxt = DATE("d/M/Y H:i:s"); //Temps conventionnel Date/Heure
	 $DateTxt = DATE("Ymd"); //Temps conventionnel Date
	 $HeureTxt = DATE("H:i:s"); //Temps conventionnel Heure
	 $connexion = OpenBDD();
	 $Table = "tableconnect";        //Nom de la table MySQL
	 $Table2 = "maxconnect";         //Nom de la table MySQL
// Delete les records avec le meme IP puisque meme visiteur
	 $query="DELETE FROM $Table WHERE IP LIKE '$IP'";
	 $sql_result = mysql_query("$query",$connexion);
// Delete les records plus vieux que Delay (probablement deconnecte)
	 $TooOld = $TimeConnect - $Delay;
	 $query="DELETE FROM $Table WHERE TimeConnect < ($TooOld)";
	 $sql_result = mysql_query("$query",$connexion);
// Enregistrement de la nouvelle demande de page
	 $query="INSERT INTO $Table VALUES('','$IP','$PageADRS','$TimeConnect','$TimeTxt')";
	 $sql_result = mysql_query("$query",$connexion);
// Recherche du nombre de connectes sur le site
	$query = "SELECT * FROM ". $Table; 
	$sql_result = mysql_query($query,$connexion); 
	$NbConnectSite = mysql_num_rows($sql_result); 
// Mise a jour du max global si NbConnectSite est plus grand que Max
	 $query="UPDATE $Table2 SET Max='$NbConnectSite', Date='$DateTxt', Time='$HeureTxt' WHERE IdJour='0' AND Max<$NbConnectSite";
	 $sql_result_max = mysql_query("$query",$connexion);
// Verification si le record du jour existe
	 $query="SELECT * FROM $Table2 WHERE Date='$DateTxt' AND IdJour!='0'";
	 $sql_result_max = mysql_query("$query",$connexion);
	 $JourExiste = mysql_num_rows($sql_result_max);
//Jour existe donc MAJ
	 IF ($JourExiste == 1)
		{
		 $IdJour = mysql_result($sql_result_max,0,"IdJour");
		 $MaxJour = mysql_result($sql_result_max,0,"Max");
		 $query="UPDATE $Table2 SET Max='$NbConnectSite', Time='$HeureTxt' WHERE IdJour='$IdJour' AND Max<$NbConnectSite";
		 $sql_result_jour = mysql_query("$query",$connexion);
		 }
// Jour n'existe pas encore donc creation
	 ELSEIF ($JourExiste == 0)
		{
		 $query="INSERT INTO $Table2 VALUES('','$DateTxt','$HeureTxt','$NbConnectSite')";
		 $sql_result_jour = mysql_query("$query",$connexion);
		 }
// Recherche du nombre de connectes sur la page
	 $query="SELECT * FROM $Table WHERE PageADRS LIKE '$PageADRS'";
	 $sql_result = mysql_query("$query",$connexion);
	 $NbConnectPage = mysql_num_rows($sql_result);
// Determine si le pluriel doit etre applique
	 IF ($NbConnectSite > 1) {$ss = "s";} ELSE {$ss = "";}
	 IF ($NbConnectPage > 1) {$sp = "s";} ELSE {$sp = "";}
// Affichage des infos sur les nombres de connectes
// Cette ligne sera adaptee selon les besoins d'affichage
	 ECHO '<P ALIGN="RIGHT"><FONT SIZE="2" COLOR="#FF0000">', $NbConnectSite, ' visiteur',$ss, ' sur le site<BR>', $NbConnectPage, ' visiteur', $ss, ' sur la page</FONT></P>';
	 mysql_close($connexion); //Fermeture de la BDD
	echo("<p>". $query ."</p>\n"); 
	};
?>
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

25 sept. 2005, 17:48

Ah les beaux codes tout fait .... zarabotak.com
rien ne vaut un code fait maison :wink:

sinon verifi le type du champ "PageADRS" dans la table "tableconnect", est ce qu'il faut y mettre tout le chemin ou seulement le fichier ?!
Modifié en dernier par Truc le 25 sept. 2005, 17:54, modifié 1 fois.

/!\ 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

25 sept. 2005, 17:52

c'est du type varchar(150)


euh c'st mieux le fichier non?
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

25 sept. 2005, 17:57

ok pour le type, bien sur que c'est mieux avec le fichier, mais ma question était sil faut mettre dans le champ, ceci:
/include/mods/sf_nbconnect/PageDemo.php
ou seulement
PageDemo.php

/!\ 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

25 sept. 2005, 18:02

bah je prefererais
PageDemo.php 
pourquoi cette question?
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

25 sept. 2005, 18:08

peut etre que les " / " dans la requete sont mal interprétés.

As tu refait un test en ne mettant comme nom de fichier a inserer que "PageDemo.php" ? meme erreur ?
essai en mettant:
$query="SELECT id  FROM $Table WHERE PageADRS='".$PageADRS."'";
Averifier l'orthographe du champ "id" et remplacer dans la requete :wink:

/!\ 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

25 sept. 2005, 18:29

le fichier pagedemo.php est bien situé suivant
/include/mods/sf_nbconnect/PageDemo.php 
d'apres ce que tu me suggeres,
c'est tjrs le mm erreur....
:cry:
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 258 Messages

25 sept. 2005, 18:29

tu veux le script? je te l'envoie en MP?
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

25 sept. 2005, 18:36

tu peut toujours me l'envoyer, en effet je vois pas le binz :?

/!\ 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

25 sept. 2005, 18:42

envoyé à ton mail ;)
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

25 sept. 2005, 20:19

Je viens de percuter qu'on s'acharnait sur la mauvaise requete (tout du moins moi), du faite que tu fait afficher la requete en fin de fichier !!
et comme toutes les requetes portent le meme nom il affichera la dernière qui est certainement bonne :wink:

A la base l'erreur était situé ici, donc fait afficher cette requete:
// Recherche du nombre de connectes sur le site
    $query = "SELECT * FROM ". $Table;
    echo("<p>". $query ."</p>\n"); 
    $sql_result = mysql_query($query,$connexion);
    $NbConnectSite = mysql_num_rows($sql_result);
et pareil remplace * par l'id du champ.

/!\ 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

25 sept. 2005, 20:37

tjrs le mme erreur :(

Code : Tout sélectionner

SELECT IdConnect FROM tableconnect Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/4/xxxxxxx/include/mods/sf_nbconnect/nc.inc.php on line 92 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/4/xxxxxxx/include/mods/sf_nbconnect/nc.inc.php on line 99 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/4/xxxxxxx/include/mods/sf_nbconnect/nc.inc.php on line 117
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

25 sept. 2005, 22:34

il y a un bloquage sur la fonction mysql_num_rows, je sait pas pourquoi mais essai en remplaçant les exécutions come ceci:
$sql_result = mysql_query($query);
en enlevant le 2eme paramètre, et ce sur les 3 lignes qui posent problème

/!\ 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

25 sept. 2005, 23:49

salut à tous

j'aimerais savoir si on peut mettre en chmod ecriture (777) un fichier test.txt. ce fichier est hébergé chez Free.
car je n'arrive pas à modifier ses attributs.

merci de votre aide...
Pour en revenir au sujet, on peut parfaitement écrire dans un fichier quand on est hébergé chez FREE.
Cf ce code légèrement modifié extrait de la doc (à priori, la fonction ne marche pas chez FREE) :
<?php
$filename = 'test.txt';
$somecontent = "Ajout de chaîne dans le fichier \n";

    // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    if (!$handle = fopen($filename, 'a')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $somecontent) === FALSE) {
       echo "Impossible d'écrire dans le fichier ($filename)";
       exit;
    }
    
    echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
    
    fclose($handle);
?> 
Et pour le script que tu nous montres, pour moi, il est bon à mettre à la poubelle.
Rien que ces 5 lignes de code me font hurler :
// Recherche du nombre de connectes sur la page
     $query="SELECT * FROM $Table WHERE PageADRS LIKE '$PageADRS'";
     $sql_result = mysql_query("$query",$connexion);
     $NbConnectPage = mysql_num_rows($sql_result);
// Determine si le pluriel doit etre applique
     IF ($NbConnectSite > 1) {$ss = "s";} ELSE {$ss = "";}
     IF ($NbConnectPage > 1) {$sp = "s";} ELSE {$sp = "";} 
La requete :
- que vient faire un like là dedans ?
- SELECT * uniquement pour compter le nombre de ligne :twisted: et le COUNT alors, c'est bon pour les chiens ?
et le IF, dire qu'une condition ternaire est tellement jolie.