天天看點

php使用thinkPHP驗證碼登入

使用thinkphp自帶的驗證,實作登入頁面的賬号密碼+驗證碼的驗證

<?php
    namespace Admin\Controller;
    use Think\Controller;
    use Think\Verify;

    class LoginController extends Controller{

        public function login(){
            if($_POST){
                $obj = new Verify();
                if($obj->check(I('post.yanzhengma','','trim'))){
                   // 注釋部分為另外一種從資料庫中驗證密碼的方法
                   // $data['name'] = I('post.user_name');
                   // $data['psd'] = I('post.password');
                   // $row = M('user')->where($data)->find();
                    $name = I('post.user_name');
                    $psd = I('post.password');
                    $str = 'name ="'.$name. '" and tel = "'.$psd.'"';
                    var_dump($str);
                    $row = M('user')->where($str)->find();
                    if($row)
                        $this->redirect("Index/index");
                    else
                        $this->redirect('login','',,'使用者名或密碼錯誤');
                }
                else{
                    $this->redirect('login','',,'驗證碼錯誤');
                }
            }
            $this->display();
        }

        public function verifyImg(){
            //設定驗證碼的寬高字型大小以及驗證碼的個數,設計其他的參照Think\Verify裡面的設定
            $config=array(
                'imageW'    => ,
                'imageH'    => ,
                'fontSize'  => ,
                'length'    => 
            );
            $obj = new \Think\Verify($config);
            $obj->entry();
        }
    }
           

表單部分

<form action="login" method="post">
                                    <table valign="top" width="50%">
                                        <tr><td colspan="2"><h4 style="letter-spacing:1px;font-size:16px;">RainMan 網站管理背景</h4></td></tr>
                                        <tr><td>管理者:</td><td><input type="text" name="user_name" value="" /></td></tr>
                                        <tr><td>密&nbsp;&nbsp;&nbsp;&nbsp;碼:</td><td><input type="password" name="password" value="" /></td></tr>
                                        <tr><td>驗證碼:</td>
                                            <td><input type="text" name="yanzhengma" value="" style="width:80px;"/></td>
                                            <td><img src="__URL__/verifyImg" onclick="this.src='__URL__/verifyImg/'+Math.random()" alt=""/></td>
                                         </tr>
                                        <tr class="bt" align="center"><td>&nbsp;<input type="submit" value="登陸" /></td><td>&nbsp;<input type="reset" value="重填" /></td></tr>
                                    </table>
                                </form>