为什么我的会话变量没有设置在这里?

时间:2010-07-03 09:54:16

标签: php session

我在函数studNameDetails1()中设置会话变量 我试图在函数ViewMark()中检索它。这是我的两个功能,但没有结果:

function studNameDetails1()
{
     $_SESSION['ATTsub']=$sub_id = $ID[5];
}
function ViewMark()
{
      echo $_SESSION['ATTsub'];
}

当我回显viewMark()中的值时,没有任何价值。

2 个答案:

答案 0 :(得分:3)

$ID变量尚未在studNameDetails1函数内声明,因此当您尝试访问它时,未定义的值。这会将$_SESSION['ATTsub']$sub_id变量设置为未定义,因此当您尝试打印时,它们将显示为空。

如果已在函数范围之外声明了这些变量,请使用global关键字:

function studNameDetails1()
{
    global $sub_id, $ID;

    $_SESSION['ATTsub']=$sub_id = $ID[5];
}

http://php.net/manual/en/language.variables.scope.php

答案 1 :(得分:2)

这是处理会话的方式。

    <?php // this starts the session 
session_start(); 

    // echo variable from the session, we set this on our other page 
echo "Our color value is ".$_SESSION['color'];  
echo "Our size value is ".$_SESSION['size'];  
echo "Our shape value is ".$_SESSION['shape']; ?>  

所有值都存储在$ _SESSION数组中,我们在此处访问。另一种显示方法是简单地运行此代码:

<?php session_start(); Print_r ($_SESSION); ?>