2010-08-08 6 views
1

Je construis un module pour un CMS qui crée ses propres fichiers PHP. J'ai reçu des retours que beaucoup de fournisseurs d'hébergement ne permettent pas à PHP d'avoir des permissions d'écriture sur les répertoires où les scripts PHP peuvent être exécutés. Bien que les scripts ne soient pas techniquement "exécutables" (ce ne sont que des définitions de classe), je crains que ce module ne fonctionne pas sur beaucoup d'environnements d'utilisateurs.Création de scripts exécutables avec PHP

Est-ce vrai, et si oui, en supposant que la création des fichiers PHP est non négociable, y at-il une autre approche que je pourrais examiner?

+1

Il me vient à l'esprit qu'il y a une différence clé, ici. Puisque les fichiers PHP ne sont que des définitions de classe, ils n'ont pas besoin d'avoir des perms d'exécution. Donc je pense que je pourrais bien aller? –

+1

pourquoi ne pas l'essayer: vous devriez pouvoir les inclure dans tous les cas. (Cela ne changera rien à ce qu'ils contiennent, cependant - le code PHP est du code PHP.) –

Répondre

1

Merci, tout le monde. @Pekka fait un bon point. Je pensais à tort que "exécuter" est la même que l'inclusion simple (par exemple une définition de classe). Ces scripts n'ont pas besoin d'être lancés depuis l'URL, donc je pense que je vais bien.

1

Vous pouvez stocker le code dans la base de données ou dans un fichier texte et utiliser la fonction eval() pour l'exécuter.

Jetez un oeil à http://www.php.net/eval

+2

Eval() ne devrait être utilisé qu'en dernier recours. En fait, il serait préférable de changer l'architecture du script que d'utiliser eval. L'exécution de code en direct à partir de la base de données n'est pas une bonne idée. –

+0

Voir par ex. http://stackoverflow.com/questions/951373/when-is-eval-evil-in-php –

0

Le principal des services Web permettent hostings scripts à écrire des fichiers, et sinon, il vous permet de définir des autorisations de chmod dans les répertoires et les fichiers.

(Hassan Al-Jeshi est juste, il poster d'abord mais je pense la même chose)

Questions connexes