Version complète: sur le forum Webmaster Hub : [Résolu]Fermer une accolade ouverte avec require
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
mathieu147
Bonjour smile.gif

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 wink.gif ), et je n'ai donc qu'a vérifier le cookie à chaque page protégée. Voici comment je fais:

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
}
?>

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
{
?>

et mon fichier pageprotegee.php devient
CODE
<?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 smile.gif
Dan
Salit,

Pas besoin de mettre un if ... else.

Un simple if suffit s'il est terminé par un exit.

Ensuite, le else sera la page courante (celle qui fait l'include()) wink.gif

Dan
mathieu147
Aaaaah, Dan, tu mériterais un bisou si t'étais une jolie blonde smile.gif

Merci beaucoup!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.