0

我有这样的 PHP 代码:(用于退出 - 与其他用于不同功能的 php 处理程序一起位于 php 页面中,并且该文件包含在 index.php 等页面或其他相关页面中。)

if(isset($_POST['signout'])) { // logout button
  // Clear and destroy sessions and redirect user to home page url.
  $_SESSION = array();
  session_destroy();
  // redirect to homepage (eg: localhost)
  header('Location: http://localhost/index.php');
  }

我通常使用<form action="index.php" method="post">当前包含该功能的地方以及<input type="submit" name="signout">此类事情,但这次我想使用锚标签,例如: <a href="" >Sign Out</a>用于退出。

任何人都愿意展示一个示例代码,该代码将触发将由上面给定的 PHP 代码处理的提交。

jQuery 或 Javascript 解决方案都可以。我只想看一个关于它是如何工作的完整示例。

4

1 回答 1

1

使用 POST 提交身份验证令牌是有充分理由的,这通常会开始或更改会话状态 - 但这些并不真正适用于关闭会话的问题 - 为什么不直接通过 GET 触发呢?

但是,如果你真的必须做一个 POST,而且你真的必须通过 aa href 来做(而不是设置提交按钮的样式),而且你真的必须通过 javascript 来做(如果客户端禁用了 javascript,它会中断)那么......

<script>
function sendForm(formId) 
{
   if (document.getElementById(formId).onsubmit()) 
      document.getElementById(formId).submit();
}
<script>
<form id='logout'>
<input type='hidden' name='signout' value='1'>
</form>
<a href="javascript:sendForm('logout');">logout</a>
于 2013-05-28T21:30:34.040 回答