Pb php et les fichiers

h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004 - 27 juil. 2004 à 11:11
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008 - 29 juil. 2004 à 16:11
Bonjour,

J'ai besoin d'un coup de main.
Je travaille sur le site intranet d'une boite. Je veux lire le contenu d'un fichier html et l'insérer à l'intérieur de ma page php. Jusque là pas de soucis. Quand j'ai commencé mon développement, j'ai bossé sur ma machine en utilisant le code suivant:

<?php

$document = $_REQUEST['chemin'];
$contenu_string = file_get_contents($document);
print $contenu_string;

?>

Cela fonctionnait correctement, le texte du document html qui est à l'origine un document word (précisément des documents de réunion que la société souhaite visualiser sur le site intranet).

Mais quand j'ai voulu faire mon intégration en mettant mes fichiers sur le serveur, ma fonction de lecture de fichier ne fonctionnait plus. La raison venait d'une version antérieur (php 4.2.3) de php sur le serveur alors que ma version à moi sur mon poste était la 4.3.3.

Bref donc je change de fonction. J'utilise :

<?php

$document = $_REQUEST['chemin'];
$fichier= $document;
$contenu = fread(fopen($fichier, "r"), filesize($fichier));
print $contenu;

?>

Celle-ci ne marche toujours pas mais pas de la meme facon, il faut que le fichier html à lire soit dans le meme répertoire que mon fichier php, il n'accepte pas mon $document (celui-ci contient une chaine de caractere du type : \\zzzz\intranet\version 1.0). par contre si mon $document contient juste le nom du fichier ca marche. Mais ce n'est pas le but, je veux un seul fichier php pour lire pleins de fichier html.

Je retourne sur mon poste et là tout marche, il accepte la variable $document. Si je mets $fichier = \\zzzz\intranet\version 1.0\data.html, ca marche aussi. Je comprends pas.

La seule différence entre le serveur et mon poste est la version de php. Mais la dernière fonction que j'utilise est compatible pourtant avec php 4.2.3 et meme les versions antérieur.
La société ne peut pas changer la version de php car il utilise des logiciels spécialisé...!!!

Merci d'avance.

24 réponses

WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 11:19
utilise include()
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 12:08
Merci pour ta réponse mais il me met encore une erreur.
Sur ma machine en local, la fonction include (qui d'ailleurs est génial!!!), fonctionne trés bien. Mon doc html s'affiche mais dés que j'interviens sur le meme fichier php mais sur le serveur, il me mets cette erreur :

Warning: Failed opening '\\zzzz\intranet\data.html' for inclusion (include_path='.:/usr/local/lib/php') in /home/site_intranet/site final 1.0/reglementation/infotexter.php on line 124

Le serveur est sous linux. Et la ligne 124 correspond à la ligne où j'utilise la fonction include().
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 14:09
Déja c'est mieux d'utiliser \ au lieu de / pour les chemins... ensuite, tu pourrais me donner un exemple, enfin c'est a dire ou se trouve le fichier que tu veu ouvrir, ou se trouve le fichier php (enfin les noms des dossiers...) et je verrai...ha oui, tu utilise quoi comme serveur ?
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 14:18
Heu... tu as éssayé de changer les permissions des dossiers ?
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0

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

Posez votre question
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 14:37
Ok, je m'étais tromper dans les chemins...
Un exemple...
Je suis en stage en fait au parc de la vanoise, je leur fait un site intranet. Ils veulent mettre leur compte rendu de réunion ou les textes de lois régissant le parc sur le site. Le fichier que je veux ouvrir est dans:

\\Idefix\intranet\site final 1.0\reglementation\arrêté\ARRETE PORTANT REGLEMENTATION DU VTT.htm

et mon fichier php est dans:

\\Idefix\intranet\site final 1.0\reglementation\infotexter.php

Voici son contenu principal:


<?php  

$nomligne = $_REQUEST['nomtexte'];
$document = $_REQUEST['chemin'];
echo"<center>$nomligne</center>
";	  
?>
<?php 
include ("//Idefix/intranet/aubry/ARRETE PORTANT REGLEMENTATION DU VTT.htm"); 
?>

  

<?php  
require "util.php";	 
$resultat_requete executer_requete("select * from texter where typetexte 'arrete'");
echo"
";
echo"\n";

for ($i=0; $row=ibase_fetch_row($resultat_requete); $i++)
{
   echo("<li>$row[0]
\n</li>");
}

echo("");
?>


nomtexte et nomligne sont des données de ma BDD.

Par contre j'ai fait un lien vers la page html en question ( ARRETE PORTANT REGLEMENTATION DU VTT.htm), pas de soucis il m'ouvre une autre page avec le contenu correct. Donc il trouve bien la page à lire.

J'ai pris les infos grace à phpinfo()

Le serveur est un CGI alors que sur mon poste tourne un serveur apache

PHP Version 4.2.3

System : Linux idefix 2.4.4-64GB-SMP #1 SMP Fri May 18 14:54:08 GMT 2001 i686 unknown

Configure Command : './configure' '--enable-enable-force-cgi-redirect' '--with-config-file-path=/www/conf/' '--enable-dbase' '--with-interbase=/opt/interbase/' '--with-system-regex' '--with-ttf' '--enable-gd-native-ttf' '--with-gd=/usr/local/etc/gd-1.8.4/'

Server API : CGI

Virtual Directory Support : disabled

Configuration File (php.ini) : Path /www/conf/php.ini

Debug Build : no

Thread Safety : disabled

J'éspère avoir été le plus clair possible...
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 14:44
Excuse moi c'est, pour mes tests :

<?php 
include ("\\Idefix\intranet\site final 1.0\reglementation\arrêté\ARRETE PORTANT REGLEMENTATION DU VTT.htm"); 
?>


sinon c'est destiné à devenir bien sûr

<?php 
include ($document); 
?>
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 14:48
En ce qui concerne les permissions de dossiers, c ok puisque j'arrive en local à exploiter le fichier

\\Idefix\intranet\site final 1.0\reglementation\arrêté\ARRETE PORTANT REGLEMENTATION DU VTT.htm

qui est sur le serveur.
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 15:04
Rectification aprés lecture d'infos sur le net, comme quoi il faut tourner sa langue 7 fois dans sa bouche avant de dire des conneries :big) :

Le serveur est un serveur apache ou php est configuré en tant que CGI, et sur mon poste php est configuré ne tant que module apache.
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 15:04
Rectification aprés lecture d'infos sur le net, comme quoi il faut tourner sa langue 7 fois dans sa bouche avant de dire des conneries :big) :

Le serveur est un serveur apache ou php est configuré en tant que CGI, et sur mon poste php est configuré en tant que module apache.
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 15:20
la permission des fichiers, c'est spécifique au serveur, qd tu dis les ouvrir, c'est à dire que tu les ouvre avec un prog genre dreamweaver ou ca veu dire qu'en local ton site marche ? c'est pas du tout la même chose, et puis pour info, enlève les accents dans les chemins, c'est pas bon de nommer des fichiers ou des dossiers en PHP avec des accents, ca se trouve c'est tout simplement ca...

pour les permissions, lorsque tu navigue sur le DD, tu ne passe pas par le serveur, mais qd tu lance le site, le serveur apache vérifie les permissions, et il suffit que la permission du dossier ne soit pas la bonne et c'est foutu ca marche pas...

Essaye ca sinon, je vais réfléchir sur les autres solution éventuelles...
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 15:33
tu me dis : "Le fichier que je veux ouvrir est dans:

\\Idefix\intranet\site final 1.0\reglementation\arrêté\ARRETE PORTANT REGLEMENTATION DU VTT.htm

et mon fichier php est dans:

\\Idefix\intranet\site final 1.0\reglementation\infotexter.php"

donc a ce moment la ton include devrait être :

include("arrete\ARRETE PORTANT REGELEMENTATION DU VTT.htm");


j'ai enlevé les accents pour le nom du dossier... enfin je te conseille d'en faire autant et de modifier le nom du dossier pour qu'il ne porte plus d'accents

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 15:34
Ca veut dire quand local mon site marche. J'arrive à lire le contenu de la page html qui est sur le serveur. Et ce contenu s'inscrit dans ma page php (en local) lors de son éxécution.

C'est là que je comprends pas, les fonctions de lecture de mon fichier php marche en local sur un fichier distant. Mais lorsque ce meme fichier php est sur le serveur, les fonctions de lecture ne marche plus... Pourtant il connait le fichier puisque quand je fait un :

echo("<li>$nomligne
\n</li>");


Il m'ouvre le fichier html correctement.
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 15:44
J'ai fait ce que tu m'as dit mais il me met toujours la meme erreur:

Warning: Failed opening 'arrete\ARRETE PORTANT REGELEMENTATION DU VTT.htm' for inclusion (include_path='.:/usr/local/lib/php') in /home/site_intranet/site final 1.0/reglementation/infotexter.php on line 128

De toute manière, si je me trompe pas que je lui mettent le chemin relatif :

('arrete\ARRETE PORTANT REGELEMENTATION DU VTT.htm' )

ou absolu:

(\\Idefix\intranet\site final 1.0\reglementation\arrete\ARRETE PORTANT REGLEMENTATION DU VTT.htm)

c'est pareil, non?
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 16:21
Ok bah alors c'est surement un problème de permissions sur les dossiers....et si ce n'est pas ca, vu que je ne suis pas devant le problème je ne pourrais plus rien faire...

le dossier de destination doit avoir les droits de lecture : CHMOD 777 par exemple en faisant un click droit dessus avec ton client FTP

Sinon c'est koi l'adresse du site avec la page qui marche pas ? je vais essayer de comprendre
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 16:22
Ok bah alors c'est surement un problème de permissions sur les dossiers....et si ce n'est pas ca, vu que je ne suis pas devant le problème je ne pourrais plus rien faire...

le dossier de destination doit avoir les droits de lecture : CHMOD 777 par exemple en faisant un click droit dessus avec ton client FTP

essaye aussi de copier le fichier dans le même dossier, fais un test, et nomme le avec un nom tout con genre "data.html"

Sinon c'est koi l'adresse du site avec la page qui marche pas ? je vais essayer de comprendre
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 16:25
raaaah ! j'oublie a chaque fois de mettre tout ce que je veux dire dans mes messages... pour répondre a ton intervention sur les chemins des fichiers, il vaut mieu mettre l'URL la plus courte dont tu est sur car tu peu tjrs te tromper, et entre le local et un serveur, ca peu réagir différement...
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 16:31
un ptit code, applique le ca ne fera pas de mal :


<?php
chmod("arrete",0777);
chmod("arrete\ARRETE PORTANT REGELEMENTATION DU VTT.htm",0777);

?>

//c peu être ca la solution.... ca sert a changer les permissions des utilisateurs



----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
h2o_73 Messages postés 11 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 29 juillet 2004
27 juil. 2004 à 17:57
Ok merci,

Désolé mais ca ne marche pas.
En plus j'ai vérifier les droits sur le serveur et je les ai tous, je les ai meme mis pour tous le monde pour etre sûr!!!

Ce qui me rend dingue c que de ma bécane, je puisse lire et exploiter ce fichier sur ma page php et sur le serveur non.
J'ai également étudier le fichier php.ini mais tout à l'air correct.

La seule différence est la version de php et le fait qu'il l'utilise en cgi.

Je ne peux malheureusement pas te donner l'adresse du site car il n'est pas accessible de l'extérieur, c du pur intranet %-6 !!!
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
27 juil. 2004 à 22:31
Pour le coup, je crois que j'aurais vraiment essayé de t'aider... si j'ai une idée un de ces 4 j'te fais signe... mais je ne pense pas... remarque, on ne sais jamais...
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
28 juil. 2004 à 12:18
finalement c'est quoi le probleme, j'ai pas bien compris ?

@+

win
0
Rejoignez-nous