使用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>密 碼:</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> <input type="submit" value="登陸" /></td><td> <input type="reset" value="重填" /></td></tr>
</table>
</form>