如何跨页面使用存储和使用会话变量?

时间:2011-03-30 16:44:45

标签: php session session-variables

当访问一个页面时,我想开始一个会话并存储一个会话变量:

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

然后从另一个页面,我想检查是否已存储该会话变量:

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

此代码对我不起作用。

8 个答案:

答案 0 :(得分:22)

逐步进行会话

  1. 在所有内容之前定义会话,之前不应输出 NO OUTPUT

    <?php
    session_start();
    ?>
    
  2. 在页面中设置会话,然后您可以访问该页面。例如,这是第1.pp页

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

    中使用和获取会话
     <?php
    
    //In this page I am going to use session:
    
      session_start();
      if($_SESSION['email']){
      echo 'Your Email Is Here!  :) ';
      }
     ?>
    
  4. 注意 :评论没有输出。

答案 1 :(得分:14)

你要做的就是写--- session_start(); -----两页......

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

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

?>

答案 2 :(得分:7)

从评论到这个问题的推理,似乎缺乏调整后的session.save_path导致PHP会话处理程序的这种不当行为。只需指定一个存在的目录(在文档根目录之外),并且PHP既可读也可写,以解决此问题。

答案 3 :(得分:1)

如果第二页没有对会话cookie的共享访问权限,则需要使用session_set_cookie_params设置会话cookie路径:

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

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

答案 4 :(得分:0)

试试这个

第一页

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

第二页

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

答案 5 :(得分:-1)

每次启动会话(适用于PHP 5.2.54版)时,session_start()都会创建一个新的会话ID。

这是适合我的修复。

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 :(得分:-1)

开始会话:

将以下代码放在文件顶部。

<?php session_start();?>

存储会话变量:

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

检查数据是否存储在会话变量中:

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

&GT?; 详情请http://skillrow.com/sessions-in-php-4/

答案 7 :(得分:-5)

试试这个:

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