我的会话似乎没有保存。我有一个登录页面,将用户ID保存为会话。但是当我离开页面并点击另一页时,会话就不会被保存。
这是我的代码。我有一个名为 index .php的主页,如下所示:
<?php
if(!isset($_SESSION)){
session_start();
}
?>
<!DOCTYPE html> <HTML> <HEAD> </HEAD> <BODY>
<?php
$page_content = 'startpage.php';
if (isset($_GET['link']) && !empty($_GET['link']) ) {
$page_content = $_GET['link'];
}
include "$page_content";
include 'menu.php';
include 'footer.php';
?>
要登录,我使用名为 admin.php 的页面。在这个页面中,我有一个工作正常的登录代码。 如果用户写了正确的用户名和密码,则会发生这种情况:
$_SESSION['user_id'] = $user_id;
print_r($_SESSION);
上面的代码显示了当前的会话变量。但是,只要点击另一页,变量就会变空。
在index.php的底部是包含的 footer.php 页面,它看起来像这样:
<?php
if(!isset($_SESSION['user_id']) ){
echo "The sessions are not initiated. ";
}
if (empty ($_SESSION['user_id']) ) {
echo "The sessions are empty. ";
}
echo "<a href='index.php?link=admin.php'>Administration</a>";
?>
在这个页脚中,我提出了两个问题来检查会话。 在我成功登录并单击另一页后,如果问题检测到我的会话为空且未启动。
我应该如何让会议发挥作用?
也许我应该补充一点,我使用的是使用MySql的租用数据库。
答案 0 :(得分:1)
在使用$_SESSION
之前,您应该始终使用:
session_start()
此外,在您在页面上输出任何内容之前,必须始终调用session_start()
,否则它将无法正常工作