我有一个奇怪的问题,即在第二次点击之前没有将用户设置为登录到SESSION(尽管他们已登录)
所以,我有一个登录下拉列表,如下所示:
我将用户发送到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');
}
我的account-selector.php页面以及session_start();
页面上有ind_login.php
。并且,两者都位于页面的最顶部(在其他任何事情之前)。
登录后,这是我的观点:
如您所见,我可以在$_SESSION['Ind_ID']
页面上设置并返回ind_login.php
并查看您的个人资料(与SESSION ID相关联)。
但是,当代码显示此按钮应设置为显示时,我们仍会在导航上看到LOG IN按钮:none:
if(isset($_SESSION['Ind_ID'])) {
$accIndStyle = "visibility: visible;";
} else {
$accIndStyle = "display:none;";
}
我知道这是正确的代码,因为按钮确实变为display:none对于其他按钮。但是,如果我第二次登录,或者使用会话(开始)转到其他页面,则网站将按设置读取$_SESSION['Ind_ID']
并隐藏登录按钮并将其替换为注销按钮。
非常感谢任何帮助。
答案 0 :(得分:1)
将session_start()放在index.php文件的顶部(该文件包含其他文件。)
答案 1 :(得分:0)
好像你的页面需要刷新,或者只是在那里抛出一个ajax调用来根据session更新按钮值。