Protection page exclusif membre ( PHP )

Résolu
Bonjour à tous,

J'ai besoin de vous car sur mon site j'ai enfin réussi à coder l'espace membre et le formulaire d'identification.
Je suis très très Happy

Mais je n'arrive pas à faire le blocage des pages d'espaces membres et autres.
J'ai fais un code pour ça et donc j'ai essayer sur ma page "Forum"
Et problème, connecté ou pas, on peut y accéder donc GROS PROBLEME !!

Voila mon code :
<?
session_start();
if(!isset($_SESSION['pseudo']))
{
echo '<p>Vous n\'etes pas autorise à acceder à cette zone.</p>';
}
?>


Quelqu'un peut me dire si le code est bon ou pas ?
Peut-être que je l'ai mal placé aussi. Je l'ai mis juste après la Balise <body> et avant le code (x)HTML.

Merci d'avance.

LelLex
Configuration: Windows Vista
Internet Explorer 8 (dernière version)
Mozilla Firefox 3.0.7 (dernière version)

5 réponses

  1. Il n'y a rien d'écrit lorsque tu va sur la page et lorsque tu n'es pas connecté ?
    1. Non.

      Est-ce que mon code est bon ?
      Et ou dois-je le placer ?

      Merci
      1. Heu, je me suis fourvoyé !

        Si il y a quelque chose d'écrit sur ma page. Il y a tout ma page en état normal, donc le code n'agit pas !
        1. Au tout début de toutes les pages que tu veux "protéger" tu mets:

          <?php
          session_start();
          if(!isset($_SESSION['pseudo']))
          {
          echo '<p>Vous n\'etes pas autorise à acceder à cette zone.</p>';
          //ou à la place de ton echo tu peux renvoyer directement à la page d'authentification par exemple index.php
          //attention il ne doit pa sy avoir de code html avant ce header
          header("Location:index.php");
          	exit;
          }else{
          ?>
           // la tu mets la partie html de ta page
          
          <?php
          } //fin du else à la fin de la page
          ?>
          
          1. Il ne doit non seulement ne pas y avoir de code HTML avant le header mais pas de texte du tout !
            A moins d'utiliser les fonctions ob_start et celles qui l'accompagne, tout "echo ...", tout caractère en dehors des balises PHP est envoyé directement au navigateur/client.
            Dès lors que des données ont été envoyées au navigateur, utiliser la fonction "header" engendrera des erreurs. C'est d'ailleurs pour cela qu'il faut être attentif à ce qu'il n'y ait pas de sauts de lignes en début ou en fin de fichier, en dehors des balises PHP.