Protection page exclusif membre ( PHP )

Résolu
LelLex Messages postés 1753 Statut Membre -  
 A.Nonymous -
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. Harricote Messages postés 424 Statut Membre 41
     
    Il n'y a rien d'écrit lorsque tu va sur la page et lorsque tu n'es pas connecté ?
    0
  2. LelLex Messages postés 1753 Statut Membre 112
     
    Non.

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

    Merci
    0
  3. LelLex Messages postés 1753 Statut Membre 112
     
    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 !
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    ?>
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. A.Nonymous
     
    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.
    0