PHP 会话变量不可访问 [已关闭]

PHP Session Variable is not accessible [closed]

提问人:vbCore 提问时间:11/15/2023 最后编辑:vbCore 更新时间:11/15/2023 访问量:49

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

5天前关闭。

我有以下PHP代码。代码运行良好,但我没有像其他 2 个会话变量那样检索 1 个会话变量值。

<?php 
ob_start();
session_start();
include('inc/header.php');
$loginError = '';
if (!empty($_POST['accesscode'])) {
    include 'Lib.php';
    $inv = new Lib();
    $login = $inv->login($_POST['accesscode']); 
    if(!empty($login)) {
        $_SESSION['accesscode'] = $login[0]['accesscode'];
        $_SESSION['inname'] = $login[0]['In_Name']; 
        $_SESSION['minno'] = $login[0]['minno'];    
            header("Location:index.php");
    } else {
        $loginError = "Invalid Access Code!";
    }
}
?>

前 2 个会话变量正在检索,但 $_SESSION['minno'] 未检索。

以下是 Lib.php 中的其他 2 个相关函数

    private function getData($sqlQuery) {
        $result = mysqli_query($this->dbConnect, $sqlQuery);
        if(!$result){
            die('Error in query: '. mysqli_error());
        }
        $data= array();
        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
            $data[]=$row;      
        }
        return $data;
    }

// Login function
    public function login($accesscode){
        $sqlQuery = "
            SELECT MinNo, accesscode, In_Name
            FROM ".$this->minTable." 
            WHERE accesscode='".$accesscode."'";
        return  $this->getData($sqlQuery);
    }   

3 个字段存储在一个表中。访问会话数组时有什么问题吗?

调试控制台不显示任何错误。

PHP 的MySQL

评论

2赞 ewokx 11/15/2023
minno与。?InNo
0赞 Adi 11/15/2023
请检查您在查询中选择了什么以及您尝试访问什么。另外,既然你已经有了它,为什么你需要在你的选择查询中?accesscode$_POST['accesscode']
0赞 vbCore 11/15/2023
@ewoks,更正为MinNo。打字错误。阿迪,是的,当然不需要。我的主要意图是访问 MinNo 字段。
1赞 CBroe 11/15/2023
“更正它是 MinNo” - 所以你想访问那时,而不是.“调试控制台未显示任何错误” - 不确定您指的是什么“调试控制台”,但尝试访问不存在的数组元素,应该肯定会让您收到通知/警告......如果没有,那么你可能没有正确配置你的PHP错误报告。$login[0]['MinNo']$login[0]['minno']
0赞 Erwin Moller 11/15/2023
有人不得不提到这一点:您的访问码来自 POST: $_POST['accesscode'],并且在 SQL 中仅供使用。此代码非常不安全。查找 SQL 注入。

答: 暂无答案