jerkoo Posté 25 Juillet 2008 Partager Posté 25 Juillet 2008 (modifié) Bonjour, je n'arrive pas a trouver s'il est possible de tester la présence d'une fonction (en l'occurence "include()") dans une page PHP ... Je voudrait faire un test du type : if (la fonction include() est présente sur la page en cours) { je la remplace par une autre qui fait autre chose;} Quelqu'un a une idée ??? Merci ! Modifié 25 Juillet 2008 par jerkoo Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 25 Juillet 2008 Partager Posté 25 Juillet 2008 Tu peux essayer avec function_exists(), ça devrait faire l'affaire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 25 Juillet 2008 Partager Posté 25 Juillet 2008 (modifié) Hello, Pour tester le fait qu'une fonction soit déclarée il y a function_exists() ; mais tu cherches à faire quoi au juste ? :S EDIT : grillé en beauté Modifié 25 Juillet 2008 par Kioob Lien vers le commentaire Partager sur d’autres sites More sharing options...
jerkoo Posté 26 Juillet 2008 Auteur Partager Posté 26 Juillet 2008 Hello, Pour tester le fait qu'une fonction soit déclarée il y a function_exists() ; mais tu cherches à faire quoi au juste ? :S thx je vais tester mais je ne suis pas sur que ça marche avec le fonction include()... je cherche a sécuriser un minimum ce code en forçant les fichiers appelés par include() à tester leurs existences sur le serveur pour éviter les injections. A vrai dire je ne sais pas trop comment m'y prendre, je tâtonne ... Si vous avez des idées... Comme c'est pas moi qui ai créé ce code, il y en a partout, des include(), donc si je pouvais lancer une fonction "patch" en haut de chaque page ça m'éviterais des heures de spéléo dans les pages. Je précise que le site est une passoire question sécurité ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 26 Juillet 2008 Partager Posté 26 Juillet 2008 Les gens cherchant à faire ça utilisent généralement une constante (define() / is_defined()). Lien vers le commentaire Partager sur d’autres sites More sharing options...
jerkoo Posté 26 Juillet 2008 Auteur Partager Posté 26 Juillet 2008 (modifié) Les gens cherchant à faire ça utilisent généralement une constante (define() / is_defined()). euh... tu pourrais développer un chouïa STP ? J'ai dû sauter une marche parce que là je ne pige pas trop ce que tu fais avec ta contante ??? Merci Modifié 26 Juillet 2008 par jerkoo Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 26 Juillet 2008 Partager Posté 26 Juillet 2008 Pour faire ce que tu souhaites (tester la présence physique d'un fichier avant de l'inclure), il faudra forcément que tu crées une nouvelle fonction (tu ne peux pas redéfinir une fonction existante en PHP). Il faut donc que tu appelles cette nouvelle fonction, qui testera l'existence du fichier, puis l'incluera avec include(). Lien vers le commentaire Partager sur d’autres sites More sharing options...
jerkoo Posté 26 Juillet 2008 Auteur Partager Posté 26 Juillet 2008 Pour faire ce que tu souhaites (tester la présence physique d'un fichier avant de l'inclure), il faudra forcément que tu crées une nouvelle fonction (tu ne peux pas redéfinir une fonction existante en PHP).Il faut donc que tu appelles cette nouvelle fonction, qui testera l'existence du fichier, puis l'incluera avec include(). c'est évident, voilà ad minima ce que je veux faire pour remplacer tous les include("inc/".$page.".php") : function includePage($page) { $filename = "inc/".$page.".php"; if (file_exists($filename)) include($filename);} simplement je voudrais declancher cette fonction uniquement lorsqu'il y a un include() dans la page... C'est pourtant simpl, mais je ne sais pas comment localiser ces fichus includes En code abscon ça devrait donner ça : if(function_exist(include($filename)) { on remplace (include($filename) par includePage($page);} bala... ché pas comment faire Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 26 Juillet 2008 Partager Posté 26 Juillet 2008 Je ne vois pas trop ce que tu comptes faire. Si tu as la main sur le site, il suffit de remplacer toutes les occurences d'include() par includePage(). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 26 Juillet 2008 Partager Posté 26 Juillet 2008 (modifié) Effectivement j'étais à coté de la plaque : je pensais que tu voulais vérifier en début de script qu'il s'agissait bien d'un appel via include() et non d'une exécution directe. Mais ce que tu cherches à faire semble totalement différent, et je n'en comprends pas le but... dsl, et bon courage Modifié 26 Juillet 2008 par Kioob Lien vers le commentaire Partager sur d’autres sites More sharing options...
jerkoo Posté 27 Juillet 2008 Auteur Partager Posté 27 Juillet 2008 pas de pb, et merci de votre aide !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant