Session de page en page

schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   -  
arthezius Messages postés 3756 Statut Membre -
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

  1. magicshark Messages postés 445 Statut Membre 13
     
    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();
    0
  2. schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   49
     
    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
    0
  3. magicshark Messages postés 445 Statut Membre 13
     
    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.
    0
  4. arthezius Messages postés 3756 Statut Membre 475
     
    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
    0
    1. schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   49
       
      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
      0
    2. schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   49
       
      ou bien ce type de probleme ne se gere pas avec les sessions
      0
    3. magicshark Messages postés 445 Statut Membre 13
       
      on peut avec des session

      dans home tu test si tes variable de sessions existe alors ok sinon redirige
      0
    4. schancel Messages postés 296 Date d'inscription   Statut Membre Dernière intervention   49
       
      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
      }
      0
    5. magicshark Messages postés 445 Statut Membre 13
       
      isset=>test si une variable existe nan ?
      donc logiquemant
      !isset => ??? ( "!" s'ignifie Non ou inverse de )
      0