How to use store and use session variables across

2019-01-01 04:07发布

问题:

When one page is accessed, I would like to start a session and store a session variable:

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

Then from another page, I would like to check if that session variable has been stored:

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

This code does not work for me.

回答1:

Reasoning from the comments to this question, it appears a lack of an adjusted session.save_path causes this misbehavior of PHP’s session handler. Just specify a directory (outside your document root directory) that exists and is both readable and writeable by PHP to fix this.



回答2:

Sessions Step By Step

  1. Defining session before everything, No output should be before that, NO OUTPUT

    <?php
    session_start();
    ?>
    
  2. Set your session inside a page and then you have access in that page. For example this is page 1.php

    <?php
       //This is page 1 and then we will use session that defined from this page:
        session_start();
        $_SESSION[\'email\']=\'email@example.com\';
    ?>
    
  3. Using and Getting session in 2.php

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

NOTE: Comments don\'t have output.



回答3:

All you want to do is write --- session_start(); ----- on both pages..

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

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

?>


回答4:

In the possibility that the second page doesn\'t have shared access to the session cookie, you\'ll need to set the session cookie path using session_set_cookie_params:

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

And

<?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;
   }
}


回答5:

Every time you start a session (applies to PHP version 5.2.54), session_start() creates a new session id.

Here is the fix that worked for me.

File1.php

session_id(\'mySessionID\'); //SET id first before calling  session start
session_start();

$name = \"Nitin Hurkadli\";
$_SESSION[\'username\'] = $name;

File2.php

session_id(\'mySessionID\'); 
session_start();

$name = $_SESSION[\'username\'];
echo \"Hello  \" . $name;


回答6:

Starting a Session:

Put below code at the top of file.

<?php session_start();?>

Storing a session variable:

<?php $_SESSION[\'id\']=10; ?>

To Check if data stored in session variable:

<?php if(isset($_SESSION[\'id\']) && !empty(isset($_SESSION[\'id\'])))
echo “Session id “.$_SESSION[\'id\'].” exist”;
else
echo “Session not set “;?>

?> detail here http://skillrow.com/sessions-in-php-4/



回答7:

Try this

First Page

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

Second page

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


回答8:

Try this:

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

<!-- second page -->
<?php
    session_start();
    echo(\"1\");
    if(session_is_registered(\'myvar\'))
    {
        echo(\"2\");
       if($_SESSION[\'myvar\'] == \'myvalue\')
       {
           echo(\"3\");
           exit;
       }
    }
    ?>