Gros bug de php sur mon serveur (path relatif/absolue)

Gros bug de php sur mon serveur (path relatif/absolue) - PHP - Programmation

Marsh Posté le 05-11-2006 à 13:51:16    

bonjour à tous,
 
je rencontre actuellement de serieux problèmes avec mon serveur dédié (sivit).
En effet j'ai de gros problèmes avec les include et les path absolue-relatifs, exemple :  
 
j'ai une page page.php et j utilise 2 variables : id1 et id2.
 
code source de ma page :  

Code :
  1. <?php
  2. $id1 = $_GET['id1'];
  3. $id2 = $_GET['id2'];
  4. $filename = "/home/web/site/cache/cache/cache-$id1-$id2.html";
  5. if (file_exists($filename))
  6. {  echo 'ok ';include("$filename" );
  7. } else { echo 'cache absent ';   }
  8. ?>
  9. Le contenu statique de la page
  10. <?php
  11. include("/home/web/site/robotstats/robotstats.inc.php" );
  12. ?>


 
vous l'aurez compris, j'ai créer des caches pour tous les couples id1 et id2 que j utilise sur mon site.
Maintenant, lorsque je teste le tout :  
 

Code :
  1. ok "...LA VERSION EN CACHE..."
  2. Warning: include_once(conf/rs_config.php) [function.include-once]: failed to open stream: No such file or directory in /home/web/site/robotstats/robotstats.inc.php on line 9
  3. Warning: include_once() [function.include]: Failed opening 'conf/rs_config.php' for inclusion (include_path='.:/home/include/site:/home/include') in /home/web/site/robotstats/robotstats.inc.php on line 9
  4. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/site/robotstats/robotstats.inc.php on line 27


 
je me dis : ok, je vais mettre mon $filename en relatif cad

Code :
  1. $filename = "cache/cache/cache-$id1-$id2.html";


et là strictement la même erreur à la lettre près!!
 
puis je me dis : je vais maintenant mettre robotstats en relatif :

Code :
  1. include("robotstats/robotstats.inc.php" );


et egalement la même erreur
 
et pour couronner le tout : je commente mon petit script et je retourne en chemin absolue pour robotstats ce qui donne :

Code :
  1. <?php
  2. //$id1 = $_GET['id1'];
  3. //$id2 = $_GET['id2'];
  4. //$filename = "cache/titre/titre-$id1-$id2.html";
  5. //if (file_exists($filename))
  6. // {  echo 'ok ';include("$filename" );
  7. //} else { echo 'nok '; include("$filename" );  }
  8. ?>
  9. <?php
  10. include("/home/web/site/robotstats/robotstats.inc.php" );
  11. ?>


et encore la même erreur!
 
le hic c'est que j ai totues les pages de mon site qui possèdent le code robotstats à l'identique et situées dans le meme dossier que cette page, et là pas d'erreur et robotstats marche!!!
 
 encore plus fou, je prend ma page actuelle page.php qui fonctionne (sans le cache) avec robotstats et quelques include de menus classique. Je la copie et je nomme la copie page2.php, ces 2 pages sont donc strictement IDENTIQUES, et bien quesque j'obtient en visitant la page2 :

Code :
  1. Warning: include_once(conf/rs_config.php) [function.include-once]: failed to open stream: No such file or directory in /home/web/site/robotstats/robotstats.inc.php on line 9
  2. Warning: include_once() [function.include]: Failed opening 'conf/rs_config.php' for inclusion (include_path='.:/home/include/site:/home/include') in /home/web/site/robotstats/robotstats.inc.php on line 9
  3. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/site/robotstats/robotstats.inc.php on line 27


 
 
je suis désespéré que faire svp car à ce rythme je sent que je vais plus avoir de cheveux!!
 
merci d avance
 
doom

Reply

Marsh Posté le 05-11-2006 à 13:51:16   

Reply

Marsh Posté le 05-11-2006 à 15:52:15    

Je suis pas sur de bien comprendre: le chemin donné dans le message d'erreur est bien le bon et ça marche pas :??:
 
T'aurais pas un souci de droits :??:

Reply

Marsh Posté le 05-11-2006 à 16:40:29    

voilà tu as tout compris il m'arrive un truc à n'y rien comprendre je suis pommé lol!
 
a quel niveau il y aurai un probleme de droit? dans quel fichier de configuration???

Reply

Marsh Posté le 06-11-2006 à 02:09:29    

Sur le serveur, au niveau du système de fichier ;)
Sinon t'es sur que y'aurait pas des caractères bizaroides qui feraient ça, parfois avec certains éditeurs, voir certains ftp, ça te pourri le code sans que ça soit visible!
 
Essaye de recopier ton code dans un autre fichier, puis renomme après en supprimant l'autre ;)

Reply

Marsh Posté le 06-11-2006 à 06:07:56    

impossible car je viens d essayer simplement en faisant un copier/coller sur windows donc sans même ouvrir le fchier !!!
 
HELP!!

Reply

Marsh Posté le 06-11-2006 à 06:13:16    

ah par contre je me suis rendu compte : en supprimant le fichier actuel page.php et en le ré-envoyant par la suite, j'obtient bien ce message d erreur :  
 

Code :
  1. Warning: include_once(conf/rs_config.php) [function.include-once]: failed to open stream: No such file or directory in /home/web/site/robotstats/robotstats.inc.php on line 9
  2. Warning: include_once() [function.include]: Failed opening 'conf/rs_config.php' for inclusion (include_path='.:/home/include/site:/home/include') in /home/web/site/robotstats/robotstats.inc.php on line 9
  3. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/site/robotstats/robotstats.inc.php on line 27


 
et j'ai essayer avec des include normaux situés dans d autres fichiers et toujours pareil! donc ca ne vient pas directement de robotstats!
 
je suis désespéré :( help!

Reply

Marsh Posté le 06-11-2006 à 16:25:46    

baboule a écrit :

impossible car je viens d essayer simplement en faisant un copier/coller sur windows donc sans même ouvrir le fchier !!!
 
HELP!!


Pas un copier/coller de fichier, mais du contenu...
 
Faut chercher à comprendre, t'as plus qu'à y aller pas par pas avec des tests progressifs :spamafote:
 
Je ne connais pas le système de fichier sous unix, t'es sur que c'est bien le bon chemin :??:
 
C'est quoi l'arborescence de ton site :??:

Reply

Marsh Posté le 20-11-2006 à 19:31:45    

J'ai un probleme similaire sous NetBSD. Depuis l'upgrade vers PHP5, mes include ne marchent plus avec un chemin relatif. Ils marchent qd meme si je donne le chemin absolue.
J'ai aussi remarqué qu'un include("./fichier.php" ) marche dans mon repertoire public_html, mais pas dans les autres :(
Si c'est un probleme de config de PHP, je suis preneur!!

Reply

Marsh Posté le 20-11-2006 à 20:26:34    

L'include path qui a changé ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed