php注销而不重定向到logout.php


php logout without redirect to logout.php

我有一个问题,我想让注销成为"按钮",但不允许人们通过链接注销,就像我有logout.php和我的按钮重定向到它一样,但你也可以通过在浏览器www.mysite.com/logout.php 中输入来注销

所以我想到了使用ajax:

function Logout()
{
    $.ajax({
        url: 'logout.php',
//      data: {xyz:1},
        method: 'POST',
    }).done( location.reload(true); );
}

但不起作用

我的登录.php:

<?php
    session_start();
    setcookie("id", "", time()-3600);
    setcookie("pass", "", time()-3600);
    session_unset();
?>

我也想注销数据库中的用户,但为此我需要他的id,它在$uid中的php中,jquery代码在.js文件中,所以我不能简单地进行

var userid = <? $uid ?>

我可以吗?

您可以创建一个表单,其中包含一个包含uid的隐藏字段,另一个包含另一个隐藏变量的字段,按钮将引导您注销。php类似于以下内容:

<form method="post" action="logout.php">
<input type="hidden" name="uid" value="<?=$uid; ?>" />
<input type="hidden" name="checked" value="checked" />
<input type="submit" name="Logout" value="Logout" />
</form>

然后在你的logout.php页面上,你会得到你的帖子变量

$uid = $_POST["uid"];
$check = $_POST["checked"];

现在,您既有了所需的uid,也有了一个在提交表单时包含"checked"的变量。

这是一种相当初级的做事方式,但它会起作用的。您可以通过标准php方法或ajax传递变量,无论哪种方式都可以。