thinkphp高手解析下下面代码?
protectedfunction_search($name=''){//生成查询条件if(empty($name)){$name=$this->getActionNam...
protected function _search($name = '') {
//生成查询条件
if (empty ( $name )) {
$name = $this->getActionName();
}
$name=$this->getActionName();
$model = D ( $name );
$map = array ();
foreach ( $model->getDbFields () as $key => $val ) {
if (isset ( $_REQUEST [$val] ) && $_REQUEST [$val] != '') {
$map [$val] = $_REQUEST [$val];
}
}
return $map;
} 展开
//生成查询条件
if (empty ( $name )) {
$name = $this->getActionName();
}
$name=$this->getActionName();
$model = D ( $name );
$map = array ();
foreach ( $model->getDbFields () as $key => $val ) {
if (isset ( $_REQUEST [$val] ) && $_REQUEST [$val] != '') {
$map [$val] = $_REQUEST [$val];
}
}
return $map;
} 展开
展开全部
给你提供一种思路你自己去改改:你逆向思维想想:先判断验证码是否正确,如果验证码错误给一个错误的提示,相反呢就是验证码正确了,这样你就可以验证用户名和密码了,如:
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='';</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='';</script>";
}
else
{
echo "<script language='javascript'>window.alert('您的用户名密码有误!!!请重试!!!');history.back();</script>";
}
}
}
基本上是这样的,与你的思路相反,当遇到问题时,不要一味的按照刚开始的思路去弄,要反过来想一想,你试试吧,记着要及时清理缓存,如果在不行的话,那就逻辑有问题了,还有一种解决方法:tp提供了一个函数,当遇到问题时及时的dump(); 祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询