0

我的会话似乎没有保存。我有一个登录页面,将用户 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>";
?>

在此页脚中,我提出了两个 if 问题来检查会话。在我成功登录并单击另一个页面后,如果问题检测到我的会话为空且未启动。

我应该如何让会话正常工作?

也许我应该补充一点,我使用了一个使用 MySql 的租用数据库。

4

1 回答 1

1

在您可以使用之前,$_SESSION您应该始终从以下内容开始:

session_start()

此外,session_start()必须始终在页面上输出任何内容之前调用,否则它将无法正常工作

于 2012-06-17T14:42:19.637 回答