尝试读取$ _SESSION数组时“注意:未定义的索引”

时间:2014-01-15 12:06:29

标签: php session

我有一个恼人的问题,我似乎无法解决它,我在YouTube上观看了一些视频,并通过php.net文档阅读有关错误但是$_SESSION错误需要你的帮助!

确切的错误,我得到的是:

Notice: Undefined index: previouspage
C:\Users\Administrator\Documents\Localhost\root\test\index.php on line 5

我创建的是使用会话变量的goback按钮。当我的脚本中已经定义了变量时没有问题,但是当“用户”第一次访问网站时,还没有“上一页”。上面的错误是我得到的。我怎样才能解决这个问题?

我有这个PHP代码:

<?php 

session_start();

if($_SESSION["previouspage"]) {
    echo "<a href=".$_SESSION["previouspage"].">Go back.</a>";
    $_SESSION["previouspage"] = "index.php";
}else {
    //No go back button will be displayed.
    $_SESSION["previouspage"] = "index.php";
}

&GT;

所以,当没有历史记录时,我得到了错误,否则没有。如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

使用isset()功能:

if(isset($_SESSION["previouspage"])) {
   echo "<a href=".$_SESSION["previouspage"].">Go back.</a>";
   $_SESSION["previouspage"] = "index.php";
}else {
    //No go back button will be displayed.
    $_SESSION["previouspage"] = "index.php";
}

答案 1 :(得分:1)

问题是数组$_SESSION没有密钥previouspage

您可以使用empty函数检查密钥是否存在以及$_SESSION["previouspage"]是否有值。尝试使用:

if(!empty($_SESSION["previouspage"])){
    //$_SESSION["previouspage"] exists!
}

答案 2 :(得分:0)

请尝试:

if( isset($_SESSION["previouspage"]) ){

    echo "<a href=".$_SESSION["previouspage"].">Go back.</a>";
    $_SESSION["previouspage"] = "index.php";
}else {
    //No go back button will be displayed.
    $_SESSION["previouspage"] = "index.php";
}