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>";
}
}
} 展开
{
//从表单中获取数据
$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>";
}
}
} 展开
4个回答
展开全部
给你提供一种思路你自己去改改:你逆向思维想想:先判断验证码是否正确,如果验证码错误给一个错误的提示,相反呢就是验证码正确了,这样你就可以验证用户名和密码了,如:
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(); 祝你好运!
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()函数是不是不能用来判断数组是否为空啊?
追答
读出记录的总数的,简单的说就是对满足条件的记录求和的
展开全部
太卡 灬着从
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太卡 灬着从
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太卡 灬着从
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询