J'ai essayé de placer les fichiers dans le même dossier en changeant l'include bien sur et le problème est le même. Le problème qui est bizarre c'est que le même code copié dans un autre fichier (test2.php) dans le même dossier crée avec un éditeur de texte fonctionne (alors que c'est la même arborescence).
C'est comme si le fichier crée par PHP n'avait pas les droits pour executer certaines fonctions PHP comme include. Mais ça me paraitrait vraiment bizarre car echo fonctionne par exemple. Je ne sais pas si il y a une notion de droits internes aux fonctions de PHP ? De plus vu l'erreur, la fonction semble s'executer mais ne pas trouver le fichier. J'ai mis les droits a 777 pour voir si ça changeait quelque chose mais non 
Voici le dernier test, j'ai mis tous les fichiers dans le même dossier (test1,2,3 - incl_top, incl_end):
/test2.php (fichier qui contion la fonction editPage et qui crée le fichier test1.php)
1 2 3 4 5 6 7 8 9 10 11 12
| function editPage($pageName, $newcontent) {
$fileContent = "";
$header = " <? include(\"incl_top.php\"); ?>";
$end = "<? include(\"incl_end.php\"); ?> ";
$handle = fopen($pageName, "w");
$fileContent .= $header;
$fileContent .= $newcontent;
$fileContent .= $end;
fwrite($handle, $fileContent);
fclose($handle);
echo "DONE";
} |
Le fichier test1.php est bien crée. Je l'execute, j'obtiens l'erreur suivante:
Warning: include(incl_top.php) [function.include]: failed to open stream: No such file or directory in /var/www/classes/Awcas/test.php on line 1
Warning: include() [function.include]: Failed opening 'incl_top.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/classes/Awcas/test.php on line
(les fichiers y sont bien!)
J'ouvre ce même fichier avec un éditeur, et je copie-colle le code dans un 3eme fichier, test3.php.
<? include("incl_top.php"); ?><? echo "Hello Guys"; ?><? include("incl_end.php"); ?>
J'execute le fichier test3.php et....miracle, ça fonctionne ! Même code, même dossier mais l'un est crée par PHP, l'autre par un éditeur. C'est surement au niveau des droits je pense. (PHP 5, Ubuntu 6.10) Mais je ne vois pas. le chmod 777 n'a rien donné.
Partager