问题描述
|
我有一个基本的登录系统。基本的登录/注销功能如下:
function login() {
global $page;
if ($_COOKIE[\'adminUser\'] == adminUser && $_COOKIE[\'adminPass\'] == adminPass):
$_SESSION[\'adminLogin\'] = true;
redirect($_SERVER[\'REQUEST_URI\']);
elseif ($_POST[\'adminUser\'] == adminUser && $_POST[\'adminPass\'] == adminPass):
setcookie(\'adminUser\',$_POST[\'adminUser\'],time() + 60 * 60 * 24 * 7);
setcookie(\'adminPass\',$_POST[\'adminPass\'],time() + 60 * 60 * 24 * 7);
$_SESSION[\'adminLogin\'] = true;
redirect($_SERVER[\'REQUEST_URI\']);
else:
$page->content->table = new template(\'admin/login.tpl\');
// it shows the login form
endif;
}
function logout() {
$_SESSION[\'adminLogin\'] = false;
setcookie(\'adminUser\',false,time() - 60*100000);
setcookie(\'adminPass\',time() - 60*100000);
redirect(pathApp);
}
redirect($x)
是header(\"Location: $x\"); die;
。
整个脚本中的任何地方都没有设置其他COOKIES。
问题是注销功能不起作用。我尝试通过Firebug进行调试,以查看发送了哪些标头,并且一切似乎对我而言都是正常的。这是Firebug的注销日志:
Response Headers
HTTP/1.1 200 OK
Date: Fri,15 Apr 2011 18:48:57 GMT
Server: Apache
X-Powered-By: PHP/5.2.13
Expires: Thu,19 Nov 1981 08:52:00 GMT
Cache-Control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0
Pragma: no-cache
Set-Cookie: adminUser=deleted; expires=Thu,15-Apr-2010 18:48:56 GMT
adminPass=deleted; expires=Thu,15-Apr-2010 18:48:56 GMT
Content-Length: 1041
Connection: close
Content-Type: text/html
Request Headers
GET /freeads/admin/logout HTTP/1.1
Host: clienti.bsorin.ro
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://clienti.bsorin.ro/freeads/admin
Cookie: adminUser=q; adminPass=q; PHPSESSID=22faf6e20467b88d97dc7838572cbd47
该脚本位于http://clienti.bsorin.ro/freeads/admin。用户名和密码均设置为\'q \'。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)