PHP:销毁会话变量

时间:2017-08-13 14:10:08

标签: javascript php jquery session session-variables

我正在尝试登录php,但我需要保持登录状态。我首先使用cookies但是每个人都说我需要使用会话cookie。我成功保存了会话变量,但现在我正在处理注销按钮,它有一个切换函数的onclick事件。它不起作用。 这是代码: JQuery函数 -

function logout() {
  $('body').append("<?php session_unset(); session_destroy(); ?>");
  location.assign("index.php");
}

PHP -

<?php
if(!isset($_SESSION["username"]) || !isset($_SESSION["password"])){
echo '<button type="button" name="button" onclick="showRegister();">Register</button>
<button type="button" name="button" onclick="showLogin();">Login</button>';
}else{
echo '<button type="button" name="button">Publica un anunt</button>
<button type="button" name="button" onclick="logout();">Logout</button>';
}
?>

1 个答案:

答案 0 :(得分:0)

当你做

function logout() {
  $('body').append("<?php session_unset(); session_destroy(); ?>");
  location.assign("index.php");
}

在javascript上 - 它只包含客户端页面的PHP代码,不在服务器端执行。

如果您需要注销 - 您需要构建页面logout.php,如

<?php 
  session_unset(); session_destroy(); 
?>

并使用ajax请求它,如下:

function logout() {
  $.ajax({
    url: 'logout.php',
    success: function(){
      location.assign("index.php");
    }
  });
}

或者您可以像这样构建logout.php:

<?php 
  session_unset(); session_destroy(); 
  header("Location: index.php");
?>

并通过链接关注用户,没有任何ajax,如下所示:

<a href='logout.php'>Log out</a>