thinkphp(登录)下面是表单验证的代码,不知道为什么只要验证码正确,用户名随便写一个,都会出登录成功

publicfunctionlogin(){//从表单中获取数据$admin_name=$_REQUEST['admin_name'];$pwd=$_REQUEST['a... public function login()
{
//从表单中获取数据
$admin_name = $_REQUEST['admin_name'];
$pwd = $_REQUEST['admin_password'];
$checkcode = $_REQUEST['checkCode'];

echo $admin_name;

if($_SESSION['verify']==md5($checkcode))
{
if($admin_name=="" or $pwd="")
{
echo "<script language='javascript'>window.alert('您的用户名或密码为空!!!请重试!!!');history.back();</script>";
}
else
{
$admin = new AdminModel();
$arr = $admin->where("admin_name=".$admin_name ."and admin_password=".$pwd)->find();
//$arr = $admin->where("admin_name=" . $_REQUEST["admin_name"] . " and admin_password=" . $_REQUEST["admin_password"])->select();
print_r($arr);
if(count($arr))
{
$_SESSION["admin_name"] = $admin_name;
//echo $_SESSION["admin_name"];
//unset($_SESSION['admin_name']);
echo "<script language='javascript'>window.alert('登录成功!!!');window.location='http://localhost/tjpu1.0/Admin/index.php/';</script>";
}
else
{
echo "<script language='javascript'>window.alert('您的用户名密码有误!!!请重试!!!');history.back();</script>";
}
}
}

else
{
echo "<script language='javascript'>window.alert('验证码错误!!!');history.back();</script>";
}
}
}
展开
 我来答
生活爆照区
2011-05-07 · 超过23用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:52.6万
展开全部
给你提供一种思路你自己去改改:你逆向思维想想:先判断验证码是否正确,如果验证码错误给一个错误的提示,相反呢就是验证码正确了,这样你就可以验证用户名和密码了,如:
if($_SESSION['verify']!=md5($checkcode)
{
$this->error('验证码错误!');

else
{
if($admin_name=="" or $pwd="")
{
echo "<script language='javascript'>window.alert('您的用户名或密码为空!!!请重试!!!');history.back();</script>";
}
else
{
$admin = new AdminModel();
$arr = $admin->where("admin_name=".$admin_name ."and admin_password=".$pwd)->find();
//$arr = $admin->where("admin_name=" . $_REQUEST["admin_name"] . " and admin_password=" . $_REQUEST["admin_password"])->select();
print_r($arr);
if(count($arr))
{
$_SESSION["admin_name"] = $admin_name;
//echo $_SESSION["admin_name"];
//unset($_SESSION['admin_name']);
echo "<script language='javascript'>window.alert('登录成功!!!');window.location='http://localhost/tjpu1.0/Admin/index.php/';</script>";
}
else
{
echo "<script language='javascript'>window.alert('您的用户名密码有误!!!请重试!!!');history.back();</script>";
}
}
}
基本上是这样的,与你的思路相反,当遇到问题时,不要一味的按照刚开始的思路去弄,要反过来想一想,你试试吧,记着要及时清理缓存,如果在不行的话,那就逻辑有问题了,还有一种解决方法:tp提供了一个函数,当遇到问题时及时的dump(); 祝你好运!
更多追问追答
追问
我测试过了,那个print_f($arr)就没有将数组遍历出来,似乎没查出数据,还有问一下count()函数是不是不能用来判断数组是否为空啊?
追答
读出记录的总数的,简单的说就是对满足条件的记录求和的
wruxrgv
2011-05-14 · TA获得超过1058个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:715万
展开全部
太卡 灬着从
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kwqufxt
2011-05-14 · TA获得超过515个赞
知道答主
回答量:685
采纳率:0%
帮助的人:0
展开全部
太卡 灬着从
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rrnhafr
2011-05-09 · TA获得超过1602个赞
知道小有建树答主
回答量:1185
采纳率:0%
帮助的人:651万
展开全部
太卡 灬着从
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式