J'aimerais protéger par mot de passe certaines pages de mon site. Donc j'ai fait un système d'authentification qui met "ok" dans un cookie quand on est identifié (c'est un gros zéro point de vue sécurité, mais je changerai après, chaque chose en son temps
CODE
<?php
//On lit ce qu'il y a dans le cookie «passe»
$isok = $_COOKIE["passe"];
//S'il n'est pas écrit «ok» c'est qu'on n'est pas loggué
if ($isok!="ok")
{
echo "<p>Cette page est accessible uniquement par les membres. Merci de vous <a href=\"login.php\">authentifier</a></p>";
}
else
{
?>
<p>Contenu protégé</p>
<?php
}
?>
//On lit ce qu'il y a dans le cookie «passe»
$isok = $_COOKIE["passe"];
//S'il n'est pas écrit «ok» c'est qu'on n'est pas loggué
if ($isok!="ok")
{
echo "<p>Cette page est accessible uniquement par les membres. Merci de vous <a href=\"login.php\">authentifier</a></p>";
}
else
{
?>
<p>Contenu protégé</p>
<?php
}
?>
Ca fonctionne bien. Si je ne suis pas loggué, j'ai un lien vers la page de login, et si je le suis, je vois
CITATION
Contenu protégé
Jusque là, tout va bien...
Seulement, je me dis bien que point de vue maintenance, c'est vraiment pas terrible. Je veux donc utiliser require() pour simplifier les choses. Je crée donc un fichier _protect.php qui contient:
CODE
<?php
$isok = $_COOKIE["passe"];
if ($isok!="ok")
{
echo "<p>Cette page est accessible uniquement par les membres. Merci de vous <a href=\"login.php\">authentifier</a></p>";
}
else
{
?>
$isok = $_COOKIE["passe"];
if ($isok!="ok")
{
echo "<p>Cette page est accessible uniquement par les membres. Merci de vous <a href=\"login.php\">authentifier</a></p>";
}
else
{
?>
et mon fichier pageprotegee.php devient
CODE
<?php
require ('_protect.php');
?>
<p>Contenu protégé</p>;
<?php
}
?>
require ('_protect.php');
?>
<p>Contenu protégé</p>;
<?php
}
?>
Sauf que ça ne va pas... Si je ne mets pas
CODE
<?php
}
?>
}
?>
à la fin, il me dit qu'il y a un $ en trop à la dernière ligne de _protect.php. Si je le mets, il me dit qu'il y a une accolade fermée de trop dans pageprotegee.php...
J'avoue ne pas trop comprendre. Il doit y avoir une subtilité de require() que je n'ai pas saisie.
Un grand merci pour vos éclaircissements