Session de page en page

Bonjour,

premierement j'aimerai connaitre au fond comment fonctionne le session en php
et aussi regarder ce code j'aimerai que vous me disiez comment transmettre les sessions de page en page de telle sorte a ce que si un visiteur essai d'acceder a une page qui necessite un mot de passe on teste si les session existe ,dans le cas contraire il se voit redirigé sur la page d'accueil
voici un bout de code de la session
les variables session ont ete declarer dans la page de reception des POST
<?php
if ( isset($_SESSION['prenom']) and isset($_SESSION['email']) and isset($_SESSION['pass']) and isset($_SESSION['confirm']) and isset($_SESSION['nom'])){
session_start();
}
elseif(empty($_SESSION['prenom']) and empty($_SESSION['email']) and empty($_SESSION['pass']) and empty($_SESSION['confirm']) and empty($_SESSION['nom'])){
header('location: sb.html');
}
else{
}
?>

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. bah tu sais d'ja pas mal sur les session le truc important pour qu'elles suivent t'es pas ge c'est premiere ligne (juste apres <?php) tu ecrit session_start();
    et si tu veux detruire la session session_destroy();
    1. et sur les autres page affilier a session_start() ne necessite plus de session_start() ?
      aussi ma question est simple j'aimerai tester l'existence des session sur les autres page
      1. j'ai pas tout compris ^^

        je vais refaire mon explication:

        pour que la session rèste active d'une page à l'autre, toutes les pages doivent commencer par session_start();

        de cette manière un utilisateur qui a une session pourra se rendre partout et ne pas perdre sa session
        si par exemple index.php a bien sont session_start() mais pas la page admin_compte.php,

        en allant sur cette page, la session aura disparu.
        1. J'ai corrigé ton code:
          <?php
          session_start();
          if ( !isset($_SESSION['prenom']) && !isset($_SESSION['email']) && !isset($_SESSION['pass']) && !isset($_SESSION['confirm']) && !isset($_SESSION['nom']))
          {
          header('Location: sb.html');
          exit();
          }
          else{
          }
          ?> 

          Toutes tes pages utilisant des variables de session doivent impérativement commencer par session_start();

          empty() vérifie si tu variable est vide. Ton script ne faisait donc rien dans le cas où les variables de session ne sont pas déclaré.

          Une page a voir pour les sessions: http://www.lephpfacile.com/cours/18-les-sessions
          1. malheuresement lorsque j'accede a home.php je me vois rediriger a sb.html
            pourtant les variable $_session existe
            je m'explique pour une derniere fois

            la page sb.html corespond a la page d'inscription
            et home.php la page d'accueil lorsqu'on est deja inscrit
            la page intermediaire ici est sbs.php (la page ou commence le session_start()) et qui traite le formulaire voici un bout de son code
            sbs.php
            <?php
            session_start();
            ?>
            les sessions en elle meme sont un peu plus basse dans le site
            $_SESSION['prenom']=$_POST['prenom'] ; $_SESSION['email']=$_POST['email']; $_SESSION['pass']=$_POST['pass']; $_SESSION['confirm']=$_POST['confirm'];
            $_SESSION['nom']=$_POST['nom'];

            j'aimerai que si par exemple quelqu'un tape dans sa barre d'adresse home.php
            sans etre inscrit il se voit rediriger a sb.html
            mais avec ce code meme quand je m'inscrit j'accede a sbs.php
            je clique sur le lien pour me connecter a home.php
            je me vois rediriger
            c'est ca en fait mon probleme
          2. ou bien ce type de probleme ne se gere pas avec les sessions
          3. on peut avec des session

            dans home tu test si tes variable de sessions existe alors ok sinon redirige
          4. je croi pouvoir me retrouver si vous me dite comment tester si une variable n'existe pas car
            empty c'est pour tester si un input est vide
            else en fait s'execute malgré tout
            sur ce je voudrait mettre un elseif(variable absente){
            redirection
            }
          5. isset=>test si une variable existe nan ?
            donc logiquemant
            !isset => ??? ( "!" s'ignifie Non ou inverse de )