我正在尝试使用 jQuery 和 PHP 实现和身份验证系统。所有的 php 工作都是在控制器和数据处理程序类中完成的。.html 文件中没有 php 代码,.html 文件中的所有值都是通过 jQuery 呈现的,该 jQuery 从 php 服务器请求数据。所以我想做的是:
- 当用户单击登录按钮时,jQuery 会调用我的控制器类中的 authenticate() 方法,它会检查用户是否正确,如果正确,则启动会话并在会话上设置 user_id 所以我稍后可以访问它,并再次将userId返回给jQuery客户端。
- 之后,如果一切正常,在 jQuery 中我将其重定向到 html 文件。在 html 文件中,我从
<script>
将处理其他权限的标记中调用 jQuery。但是这个 jQuery 将访问方法 getPermissionString(来自前面提到的同一类authenticate()
方法),它需要获取在 authenticate 方法中设置的会话值。
问题:
当我尝试获取其中的会话值时,getPermissionString()
它说:
注意:未定义的变量:_SESSION
我试图检查会话是否在第二种方法中注册,但看起来不是。这是我的PHP代码。
任何想法?谢谢。
public function authenticate($login, $password)
{
$result = $this->userDataHandler->authenticateUser($login, $password);
if(is_numeric($result) && $result != 0)
{
session_start();
$_SESSION["uid"] = $result;
if(isset($_SESSION["uid"]))
{
echo "registered";
$userId = $_SESSION["uid"];
}
else
{
echo "not registered";
}
echo $result;
}
else
{
echo 0;
}
}
public function getPermissionString()
{
if(isset($_SESSION["uid"]))
{
echo "registered";
$userId = $_SESSION["uid"];
}
else
{
echo "not registered";
}
}