Bonjour,
J'ai un problème assez surprenant. J'ai une fonction qui crée un fichier (fopen w+) et qui écrit du code PHP, tout marche bien et j'obtiens le code suivant. test.php:
<? include("_menus/incl_top.php"); echo "Hello Guys"; include("_menus/incl_end.php"); ?>
Le echo fonctionne mais il ne peut pas trouver les fichiers à inclure. (Failed to open stream blabla)
Seulement si j'ouvre ce même fichier et que je fais un copier coller du code dans le fichier test2.php et que je l'execute, là, miracle ! ça fonctionne ! Ils se trouvent dans le même répertoire, ont les mêmes droits d'accès etc.
Voici la fonction en question :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function editPage($pageName, $newcontent) {
$fileContent = "";
$header = " <? include(\"_menus/incl_top.php\"); ?>";
$end = "<? include(\"_menus/incl_end.php\"); ?> ";
$handle = fopen($pageName, "w+");
$fileContent .= $header;
$fileContent .= $newcontent;
$fileContent .= $end;
fwrite($handle, $fileContent);
fclose($handle);
} |
Puis j'execute:
1 2
| $content = "<? echo \"Hello Guys\"; ?>";
editPage("../test.php",$content); |
Quelqu'un aurait-il une idée d'où ça peut venir ? fwrite, fopen ?? Le truc est que le code écrit fonctionne parfaitement quand crée via un éditeur. Je comprends vraiment pas.
Partager