0

我有一个奇怪的问题,直到第二次点击才将用户设置为登录到会话(尽管他们已登录)

所以,我有一个如下所示的登录下拉列表:

在此处输入图像描述

我将用户发送到 ACCOUNT-SELECTOR。PHP 根据企业或个人帐户确定适当的验证:

if (isset($_POST['loginAccountType']) && $_POST['loginAccountType'] == 'individual') {       
     include('ind_login.php');;
} elseif (isset($_POST['loginAccountType']) && $_POST['loginAccountType'] == 'business') {
     include('bus_login.php');
} else {
     include('error_login.php');
}

session_start();的 account-selector.php 页面和我的ind_login.php页面都有。而且,两者都位于页面的最顶部(在其他任何内容之前)。

登录后,这是我的观点:

在此处输入图像描述

如您所见,我可以$_SESSION['Ind_ID']ind_login.php页面上设置并返回并查看您的个人资料作品(链接到会话 ID)。

但是,当代码说此按钮应设置为 display:none 时,我们仍然在导航上看到一个 LOG IN 按钮:

if(isset($_SESSION['Ind_ID'])) {
     $accIndStyle = "visibility: visible;"; 
} else {
     $accIndStyle = "display:none;";
}

我知道这是正确的代码,因为按钮确实变成了显示:其他按钮没有。但是,如果我第二次登录,或者使用会话(开始)转到不同的页面,该站点将读取$_SESSION['Ind_ID']设置并隐藏登录按钮并用注销按钮替换它。

非常感谢任何帮助。

4

2 回答 2

1

将 session_start() 放在 index.php 文件的顶部(该文件包括其他文件。)

于 2013-02-05T12:56:12.350 回答
0

似乎您的页面需要刷新,或者只是在那里抛出一个 ajax 调用以根据会话更新按钮值。

于 2013-02-05T12:54:19.013 回答