我有这样的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解决方案都可以。我想看一个关于它是如何工作的完整例子。
答案 0 :(得分:1)
有充分的理由使用POST来提交通常开始或改变会话状态的身份验证令牌 - 但这些并不适用于关闭会话的问题 - 为什么不只是通过GET触发?
但是,如果你真的必须做一个POST,你真的必须通过一个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>