Session 会话问题(PHP)

Session 会话问题(PHP),session,Session,我在索引会话方面遇到了一些问题。我做了一个函数来索引我想要的会话。我在一个报告系统中使用了它,让人们不报告同样的事情,而是在报告表上大量插入。它起作用了,它挡住了人们。但是,在第一次报告时(会话未编制索引时),它会显示以下错误: 注意:第12行C:\xampp\htdocs\sucess\reportprocess.php中未定义的索引:SessionReport8 我将其设置为空。我回显它,它是空的,不是未定义的。如何解决 以下是函数: function indexarSession(

我在索引会话方面遇到了一些问题。我做了一个函数来索引我想要的会话。我在一个报告系统中使用了它,让人们不报告同样的事情,而是在报告表上大量插入。它起作用了,它挡住了人们。但是,在第一次报告时(会话未编制索引时),它会显示以下错误: 注意:第12行C:\xampp\htdocs\sucess\reportprocess.php中未定义的索引:SessionReport8

我将其设置为空。我回显它,它是空的,不是未定义的。如何解决

以下是函数:

    function indexarSession($Session)
{
    if (!isset($Session))
    {
        $Session = null;
        return $Session;
    }
    else
    {
        $Variavel = $Session;
        return $Variavel;
    }
}
在应用的地方:

$SessionReport = $Funcoes->indexarSession($_SESSION["SessionReport" . $PostID]);

        if (!isset($SessionReport))
    {
        **DO THE INSERT*
    }
    else
    {
            **SHOW MESSAGE**
    }

感谢您提供的高级功能。

您在indexarSession()函数中使用了会话,而没有检查会话是否已设置

试试看


但是我做这个函数只是为了避免脚本上的条件。只需使用函数并设置它或不设置它。如何更改函数以避免脚本页面上的if/else?在将其传递给函数之前,需要执行isset检查。为了避免此错误,您可以执行@$_SESSION[“SessionReport”。$PostID],但这不是一个好的做法。因为变量/函数前面的@符号会抑制由它引起的任何错误。很难调试输出中可能出现的意外结果。请打印$\u会话[“SessionReport”。$PostID],并告知输出
if(isset($_SESSION["SessionReport" . $PostID])){
   $SessionReport = $Funcoes->indexarSession($_SESSION["SessionReport" . $PostID]);
} else {
   // Session not set.
}