Php &引用;注意:未定义索引";尝试读取$\u会话数组时

Php &引用;注意:未定义索引";尝试读取$\u会话数组时,php,session,Php,Session,我有一个恼人的问题,我似乎无法解决它,我在YouTube上观看了一些视频,并通读了有关错误的php.net文档,但这个$\u会话错误需要您的帮助 我得到的确切错误是: Notice: Undefined index: previouspage C:\Users\Administrator\Documents\Localhost\root\test\index.php on line 5 我创建的是一个使用会话变量的goback按钮。当变量已经在我的脚本中定义时,没有问题,但是当“用户”第一次访

我有一个恼人的问题,我似乎无法解决它,我在YouTube上观看了一些视频,并通读了有关错误的php.net文档,但这个
$\u会话
错误需要您的帮助

我得到的确切错误是:

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


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

问题在于数组
$\u会话
没有键
上一页

您可以使用
empty
功能检查键是否存在,以及
$\u会话[“previouspage”]
是否有值。尝试使用:

if(!empty($_SESSION["previouspage"])){
    //$_SESSION["previouspage"] exists!
}
使用
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";
}
if(isset($\u会话[“上一页])){
回声“;
$\会话[“previouspage”]=“index.php”;
}否则{
//不会显示“返回”按钮。
$\会话[“previouspage”]=“index.php”;
}
请尝试:

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";
}
if(isset($\u会话[“上一页])){
回声“;
$\会话[“previouspage”]=“index.php”;
}否则{
//不会显示“返回”按钮。
$\会话[“previouspage”]=“index.php”;
}

否,因为当我单击未定义的索引时,它谈论的是数组;)如果不想声明会话变量,则应关闭E_通知级别的错误报告。您可以在php.ini中执行此操作。但是如果($var)
$\u SESSION
确实是一个数组,我建议您使用
isset()
来检查它们的存在,而不仅仅是
!我试试看。最后,有人只是解释了一下,没有链接到其他没有意义的帖子:)@但事实并非如此。请参见
,这意味着empty()本质上是与!isset($var)|$var==false
@Jim你说得对。仅针对未声明的变量发出通知谢谢!那很有用