web-dev-qa-db-fra.com

Comment utiliser le stockage et utiliser des variables de session sur plusieurs pages?

Lorsqu'une page est consultée, je voudrais démarrer une session et stocker une variable de session:

<?php
  session_start(); 
  $_SESSION['myvar']='myvalue';
?>

Ensuite, à partir d'une autre page, je voudrais vérifier si cette variable de session a été stockée:

<?php
    session_start();
    echo("1");
    if(isset($_SESSION['myvar']))
    {
        echo("2");
       if($_SESSION['myvar'] == 'myvalue')
       {
           echo("3");
           exit;
       }
    }
    ?>

Ce code ne fonctionne pas pour moi.

20
ab11

Raisonnant les commentaires à cette question, il semble qu'un manque de --- session.save_path provoque ce mauvais comportement du gestionnaire de session PHP . Spécifiez simplement un répertoire (en dehors de votre répertoire racine de document) qui existe et qui est à la fois lisible et inscriptible par PHP pour résoudre ce problème.

7
Gumbo

Sessions étape par étape

  1. Définir la session avant tout, aucune sortie ne doit être avant cela, NO OUTPUT

    <?php
    session_start();
    ?>
    
  2. Réglez votre session à l'intérieur d'une page et vous aurez alors accès à cette page. Par exemple, c'est page 1.php

    <?php
       //This is page 1 and then we will use session that defined from this page:
        session_start();
        $_SESSION['email']='[email protected]';
    ?>
    
  3. Utiliser et obtenir une session dans 2.php

     <?php
    
    //In this page I am going to use session:
    
      session_start();
      if($_SESSION['email']){
      echo 'Your Email Is Here!  :) ';
      }
     ?>
    

[~ # ~] note [~ # ~] : les commentaires ne le font pas avoir une sortie.

22
M98

Tout ce que vous voulez faire, c'est écrire --- session_start (); ----- sur les deux pages ..

<!-- first page -->
<?php
  session_start(); 
  $_SESSION['myvar'] = 'hello';
?>

<!-- second page -->
<?php
    session_start();
    echo $_SESSION['myvar']; // it will print hello 

?>
14
gaurav

Dans la possibilité que la deuxième page n'ait pas d'accès partagé au cookie de session, vous devrez définir le chemin du cookie de session à l'aide de session_set_cookie_params :

<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
$_SESSION['myvar']='myvalue';

Et

<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
    echo("2");
   if($_SESSION['myvar'] == 'myvalue')
   {
       echo("3");
       exit;
   }
}
1
zzzzBov

Essaye ça

Première page

<?php
   session_start();
   $_SESSION['myvar']='myvalue';
?>

Deuxième page

 <?php
   session_start();
   echo $_SESSION['myvar'];
 ?>
0
vivek