thinkphp 登陆代码问题,正确用户名 密码 登陆 为什会进去else里面

2025-03-16 21:07:06
推荐回答(1个)
回答1:

给你提供一种思路你自己去改改:你逆向思维想想:先判断验证码是否正确,如果验证码错误给一个错误的提示,相反呢就是验证码正确了,这样你就可以验证用户名和密码了,如:
 

  if($_SESSION['verify']!=md5($checkcode)
      {
         $this->error('验证码错误!');
     }
   else
      {
                  if($admin_name=="" or $pwd="")
    {
    echo "window.alert('您的用户名或密码为空!!!请重试!!!');history.back();";
    }
                               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']);

    }
    else 
    {
    echo "window.alert('您的用户名密码有误!!!请重试!!!');history.back();";
    }
                               }
      }


    基本上是这样的,与你的思路相反,当遇到问题时,不要一味的按照刚开始的思路去弄,要反过来想一想,你试试吧,记着要及时清理缓存,如果在不行的话,那就逻辑有问题了,还有一种解决方法:tp提供了一个函数,当遇到问题时及时的dump();  祝你好运!