我正在尝试创建一个登录页面,当你点击注销时它会将你注销然后刷新页面,但是,只要JavaScript $ .get就是它,它只是不运行php代码,但它确实刷新页面。非常感谢帮助。
的index.php
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
function logOut() {
$.get("logout.php");
location.Reload();
return false;
}
</script>
<a href="#" onclick="logOut();">Log Out</a>
logout.php
<?php
setcookie('username', '', 0);
setcookie('password', '', 0);
?>
答案 0 :(得分:4)
您必须在成功时添加刷新,或者至少等待呼叫结束。
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
function logOut() {
$.get("logout.php" , returndata , function() {
location.Reload(); });
}
</script>
<a href="#" onclick="logOut();">Log Out</a>
更改您的setcookie也要立即删除。常用方法是输入过去的时间戳:
setcookie('cookiename',0,( time() - 3600 ));
答案 1 :(得分:3)
为什么不使用javascript删除cookie,而不是使用PHP来处理PHP cookie。
答案 2 :(得分:1)
setcookie('username', '', 0);
在会话结束时到期
的到期强>
Cookie过期的时间。这是一个Unix时间戳,因此是自纪元以来的秒数。换句话说,您很可能使用time()函数加上希望它到期之前的秒数来设置它。或者你可以使用mktime()。 time()+ 60 * 60 * 24 * 30会将cookie设置为30天后到期。如果设置为0或省略,则cookie将在会话结束时(浏览器关闭时)到期。
如果要删除Cookie,则应使用0
setcookie('username', '', 1);
答案 3 :(得分:1)
首先 ,你实现了你的登出功能错误。 如果你想删除所有的cookie(假设你的系统不复杂,比如当你不需要保持用户的优先权时,如主题,语言,UI参数)
然后logout.php
应与
<?php
//Will remove all cookies
if ( !empty($_COOKIE) ){
foreach($_COOKIE as $key){
//Set each key in past
setcookie($key, null, time() - 84600);
}
}
//Would destroy the session if it does exists
if ( !empty($_SESSION) ){
session_destroy();
}
//Don't forget to redirect back to home page
header('Location: /');
exit();
如果您100%确定已设置Cookie,但setcookie()
不会删除它们,则可能99%它们位于不同的路径上。
确保在设置/删除它们时,它们位于同一条路径上。
setcookie()
采用名为path
的第四个可选参数。
<?php
//So when you set a cookie
setcookie('cookie_key', 'cookie_value', time() + some_lifetime_in_seconds, '/');
//And when you remove a cookie:
setcookie('cookie_key', '', time() - 86400, '/');
<强>第二强>
你不应该使用类似AJAX的注销功能。这是不明智的,有点内存浪费。
代码:
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
function logOut() {
$.get("logout.php");
location.Reload();
return false;
}
</script>
<a href="#" onclick="logOut();">Log Out</a>
应改写为
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<a href="/logout.php">Log Out</a>