[PHP] Executé un code à un moment voulu

Fermé
glorfi - 3 juil. 2006 à 11:58
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 3 juil. 2006 à 12:28
Bonjour, je cherche une fonction,une astuce ou quelque chose qui en php me permet d'executer un morceau de code à un moment voulu. Je m'explique : sur mon site j'utilise les include de cette manière
<?php
if ($_GET['page'] = 'accueil')
{
include('include/accueil.inc.php');
}

elseif ($_GET['page'] = 'page')
{
include('include/page.inc.php');
}
...
?>
mais ce qui peut provoquer des problème de sécurité si une personne trouve la page accueil.inc.php. J'ai essayé de mettre le contenu de ma page dans une variable, et de faire un echo juste après l'inclusion mais le code s'execute quand même quand je vais sur la page incluse.

Merci de votre réponse
A voir également:

1 réponse

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 juil. 2006 à 12:28
Salut,

D'abord il y a une faute dans ton code, n'utilise pas le signe = mais == pour comparer sinon tu auras de mauvaises surprises.

Ensuite, un ptit truc que j'ai vu une fois dans le code du forum phpbb: pour être à peu près sûr que ta page inclue est finalement bien inclue par ta page principale (et non pas appelée directement), tu peux définir une constante dans ta page principale, et ensuite, dans la page inclue tu vérifies que la constante existe...

A priori, on ne peux pas définir une constante php en dehors du code de la page, au contraire d'une variable que l'on peut définir par l'url ou dans des données envoyées par formulaire dans certaines configurations execrables de php....

Donc dans ta page principale:
<?php

define('NOM_CONSTANTE', TRUE);

if ($_GET['page'] == 'accueil')
{
            include('include/accueil.inc.php');
}

elseif ($_GET['page'] == 'page')
{
            include('include/page.inc.php');
}
...
?> 

Et dans tes pages inclues:
if (!defined('NOM_CONSTANTE') ){
        //La page n'est pas appelée par la page principale
}
0