我无法弄清楚如何创建一个会破坏php会话的javascript函数。我有一个可点击的链接,它将调用一个名为destroyphpsess的函数。我认为到目前为止这是可以的。现在我需要定义javascript函数。这是我到目前为止的代码......
if ($_SESSION['color'] == "") {
$var = "<a href='JavaScript:newPopup(\"http://www.yourfantasyfootballreality.com/register.php\");' class='two'>Register</a> | <a href='JavaScript:newPopup(\"http://www.yourfantasyfootballreality.com/signin.php\");' class='two'>Sign In</a>";
} else {
$var = "Hello, ".$_SESSION['color'] ."! | " . "<a href=\"http://www.yourfantasyfootballreality.com/index.php\" onclick=\"destroyphpsess()\" class='two'>Log Out</a>";
}
echo $var;
现在我需要定义javascript函数。这是我遇到麻烦的地方。这是我到目前为止的基本概要......
function destroyphpsess()
{
<?php
session_destroy();
?>
}
如果有人可以帮我这个功能,我会很感激! 感谢。
答案 0 :(得分:11)
您的JavaScript在客户端运行,而您的PHP在服务器端运行。你不能用这种方式从JavaScript调用PHP函数。您有两种选择:
答案 1 :(得分:6)
PHP会话通常使用存储在客户端的cookie。以下代码将清除该cookie,从而取消会话链接。
document.cookie = 'PHPSESSID=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
答案 2 :(得分:0)
每个人都在说AJAX。如果你想在服务器端清理cookie,这也是一个好主意,但我想如果你知道AJAX是什么,你可能已经使用过了......
我第一次碰到它时发现AJAX非常混乱。所以我建议看看并使用jQuery的AJAX功能。只包含一个函数的jQuery可能有些过分,但它可能会更容易一些。
答案 3 :(得分:0)
您的JavaScript在客户端运行,而您的PHP在服务器端运行。你不能用这种方式从JavaScript调用PHP函数。您有两种选择:
对清除会话数据的服务器端脚本执行AJAX调用(建议,为了保持服务器端的一致性和正确清除) 使用JavaScript清除PHPSESSID cookie(如果重新配置会话的处理方式,或者会话由URL参数处理,则无效)