技术论坛 imag1
举报信息:*
 

Re: 我的网站突然不能登陆了

标题: Re: 我的网站突然不能登陆了
作者 飞天龙块 于 2005年11月18日 09:48:52

首先,管理员帮忙把首贴得帐号删除一下,谢谢.


我找了个高手帮我弄好了,和大家分享一下,不过却不能注册新用户了.如果这里有高手得话,也希望能把修正方法共享一下.

原文:
龙块,你的那个xoops不能登陆的问题给你弄好了。
你那个是因为checklogin.php文件里的一个判断惹的祸:
$uname = !isset($_POST['uname']) ? '' : trim($_POST['uname']);
$pass = !isset($_POST['pass']) ? '' : trim($_POST['pass']);
if ($uname == '' || $pass == '') {
redirect_header(XOOPS_URL.'/user.php', 1, _US_INCORRECTLOGIN);
exit();
}

我不知道是你的ISP升级的关系,还是你装新的模板或者风格修改了表单提交信息的关系(我检验过了,表单的关系很小)。前者可能性大一点,ISP升级可能PHP设置或者版本也换了吧。上面的
$uname = !isset($_POST['uname']) ? '' : trim($_POST['uname']);
$pass = !isset($_POST['pass']) ? '' : trim($_POST['pass']);
这两个语句不起作用,获得的值是空的,之所以怀疑你表单就是也有可能,提交给这两个语句的数据本来就是空的了。导致下面那个判断提示错误。数据库我翻了好几遍都没有什么问题,你多虑了。

我现在把那两个红色的语句屏蔽掉了,没有那个也没有关系,我看那两句判断基本属于多余的安全判断,没有什么必要判断那两个值。现在可以用了,你看到上看看。还有就是你首页那个登陆表单也有问题,你按登陆他把数值提交给index.php,其实要提交给user.php才有用,可能你修改模板的时候没有注意到。我在首页给你加了
if ( isset($_POST['op']) ) {
$op = trim($_POST['op']);
} elseif ( isset($_GET['op']) ) {
$op = trim($_GET['op']);
}

if ($op == 'login') {
include_once XOOPS_ROOT_PATH.'/include/checklogin.php';
exit();
}
实现跟user.php一样的登陆功能,和你去找表单是一样的效果。你如果要修改表单,可以把我这些删了。不修改就要保留我这些那个登陆表单才能用。

http://www.gzmask.com/dnl
http://www.gzmask.com/dnl/user.php