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

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

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