Si vous utilisez un CMS existant, comme Joomla, Drupal, etc.
Le CMS gère le texte de la DB comme ce qu'il est - texte. Il n'exécutera pas le texte, il est probablement juste en le tirant comme une chaîne de la DB et en l'écho sur la page. Voir answer de Brenton Alker pour une meilleure explication.
Si possible, il serait préférable de travailler dans les fonctionnalités du CMS, et d'éviter de pirater la source de votre CMS pour utiliser eval()
. Selon le CMS que vous utilisez, il peut y avoir une fonctionnalité (par exemple: un bouton dans votre éditeur, ou similaire) pour inclure le code d'un autre fichier.
Ou peut-être il y a une fonctionnalité pour créer "objets", "modules", quel-ils-voulaient-les-appeler, ce qui vous permettrait de placer le code (en HTML) que vous essayez à inclure dans un "objet", stocké dans le DB, vous permettant de l'inclure dans de nombreuses pages. Cela permettrait d'atteindre les mêmes objectifs que de faire un include()
en PHP (réutilisation du code, éviter les doublons, apporter des modifications à un endroit, etc.) mais cela vous éviterait aussi d'avoir à pirater le CMS ou à risquer la sécurité.
Si vous avez construit votre propre CMS
Vous pouvez construire une telle fonctionnalité dans. Tout dépend de vos besoins et importance de la sécurité.
En fin de compte, si vous utilisez eval()
, et si quelqu'un hacks soit:
- Votre DB
- Votre interface d'administration de CMS
alors ils seront en mesure d'exécuter du code PHP sur votre serveur . Et si vous avez exec()
activé dans votre php.ini (qui n'est pas sûr), alors ils seront également en mesure d'exécuter le code qu'ils veulent sur votre serveur lui-même ... eeek!
Merci pour cela - des solutions simples sont les meilleures pour moi! Merci pour les informations supplémentaires aussi. Malheureusement eval() comme vous le suggérez n'a pas fonctionné pour moi ici. Donc, plan C, j'ai décidé de créer un template tinymce sélectionnable qui a un iframe qui appelle la page contact_form et tout le traitement se passe dans l'iframe. Cela marche. Merci tout le monde! –
@John, voir la syntaxe mise à jour. Cela devrait fonctionner pour n'importe quel code PHP. – bucabay
Merci - c'est tout !!! Brillant, à la vôtre. –