【问题标题】:PHP: Destroy session variables [duplicate]PHP:销毁会话变量[重复]
【发布时间】:2018-01-21 12:13:18
【问题描述】:

我正在尝试制作一个登录 php,但我需要保持登录状态。我首先使用了 cookie,但每个人都说我需要使用会话 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>';
}
?>

【问题讨论】:

  • 以上代码是否都在同一个 PHP 文件中?
  • 没有。一个是main.js,一个是index.php

标签: javascript php jquery session session-variables


【解决方案1】:

当你在做的时候

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>

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多