微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用或不使用AJAX退出的php用户

我和我的同事都很难解决这个问题.我们有一种特殊的网上商店,因为我们有客户和子客户.如果登录的人是子客户,我们希望在页面显示一些额外的html.此方法有效,但是如果子客户注销并且普通客户登录,则仍然可以看到多余的html,但是我们不知道这是怎么可能的.反之亦然,问题是:如果第一个登录的是普通用户,然后注销,然后又有子客户登录,则多余的html将不可见.

1. loginck.PHP

//在用户键入他的电子邮件结束密码之后,我们检查它是普通用户还是子用户.
如果是普通用户,则=> $_SESSION [‘multiklant’] = 0;
否则,子用户==> $_SESSION [‘multiklant’] = 1;
否则$_SESSION [‘multiklant’] = 0; //找不到用户

2. index.PHP

if ($_SESSION['multiklant'] == 1) {
   $userid = $_SESSION['userid'];

echo "<div class='col-md-3'>";
echo "<label for='Leveradres'>Leveradres*:</label><br/>";
echo "<select id='Leveradres' class='form-control'>";
echo "<option value='0'>Selecteer...</option>";

$qry = "SELECT * FROM LeverADRESSEN WHERE LA_EMAIL = '" . $_SESSION['klemail'] . "'";
$res = MysqLi_query($link, $qry);
while ($row = MysqLi_fetch_assoc($res)) {
echo "<option value='" . $row['LA_ID'] . "'>" . $row['LA_NAAM'] . "</option>";
}

echo "</select>";
echo "</div>"; 
}

3.1注销单击index.PHP

$("#logout").click(function () {
    var lgout = $.get("logout.PHP");
    lgout.done(function (data) {

        $(".show-2").trigger("click");
        $("#logout").addClass("hidden");

    });
});

3.2 logout.PHP

<?PHP
    session_start();

    $_SESSION = array();
    session_unset();
    session_destroy();
    header("Location:index.PHP");
    exit();
?>

如您所见,我们在这里使用了AJAX,但问题仍然存在.如果可能,我们希望保留AJAX,但如果不能保留,则可以将其删除.也是一种组合,其中重定向不是在PHP中而是在javascript部分中.

难道这是一个缓存问题?因为如果我们在不使用缓存的情况下重新加载浏览器,则可以正常运行.

我们正在搜寻互联网,包括这个网站已经6个小时了…

在MAC上的Chrome浏览器和Windows上的Internet Explorer 11中经过测试的代码没有任何区别.

解决方法:

您的注销将在标题位置执行退出操作.换句话说:$.get(‘logout.PHP’)完成了吗?

为什么要在服务器端进行重定向?因此将重新加载整个页面和脚本!而您正在等待“完成”.做这个:

>删除带有标题的行并从logout.PHP退出

会话被销毁后,页面准备就绪,.done回调将被执行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐