Aller au contenu

comment tester la presence d'une fonction dans une page ?


Sujets conseillés

Posté (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é par jerkoo
Posté
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 :whistling: ... Si vous avez des idées... :smartass:

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é ...

Posté (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é par jerkoo
Posté

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().

Posté
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 :smartass:

Posté (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 :P

Modifié par Kioob

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...