6月11日,晴天。 「梅子留酸軟齒牙,芭蕉分綠與窗紗。日長睡起無情思,閒看兒童捉柳花。」
寫
<?php
class LoginAction extends Action {
function index() {
// 配置页面显示内容
$this->assign ( 'title', '后台管理系统' );
$this->display ();
}
// 用户登录页面
function login() {
header ( "Content-Type:text/html; charset=utf-8" );
$username=$_POST['username'];
$password=md5($_POST['password']);
$User = D ( "User" ); // 参数的User必须首字母大写,否则自动验证功能失效!
if (! $User->create ()) {
$this->error ( $User->getError () );
} else {
// 查找输入的用户名是否存在
if ($User->where ( "username ='$username' AND password = '$password'" )->find ()) {
session ( username, $username );
$url = U ( '/Index/index/username/' . $username );
redirect ( $url, 5, '跳转中...' );
} else {
$this->error ( '用户名或密码错误' );
}
}
}
<span style="font-family:Comic Sans MS;font-size:14px;"> import('@.Model.UserModel');
$User = new UserModel();</span>
對象後,將自動收集提交過來的表單資料。 在將表單寫入資料表之前,常常會有一些資料的偵測(提交的使用者名稱是否符合要求)與處理(如範例中的驗證碼的比對)。 create() 方法就支援資料的自動驗證與自動完成。
<span></span><span></span><span></span><span></span><span></span><span></span>
<span></span>
admin/Lib/Model/UserModel.class .php
<?php /* * 自定义User模型类 * 功能:1.完成自动验证功能 */ class UserModel extends Model{ //自动验证成员属性(二维数组,每个数组代表一个验证规则) //array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间'), //验证字段:表单中的字段名称,也可以是表单中的一些辅助字段,例如验证码,重复密码等 //验证规则: //错误提示:出现错误,抛出一个什么样的提示告知用户 //验证条件:参考手册6.15 (共有0,1,2三种值) //附加规则:比如使用正则表达式验证,callback函数验证等,默认使用正则验证 //验证时间:1.新增时验证 2.编辑时验证 3.全部清况下验证 protected $_validate=array( array('username', 'require', '用户名必须非空'), array('username', 'callback_checklen', '用户名过长或过短', 0, 'callback'), array('password', 'require', '密码必须非空' ), array('repassword', 'require', '请重复输入密码' ), // array('password', 'repassword','两次输入的密码不一致,请重新输入', 0, 'confirm'), array('verify','require','验证码必须填写!'), array('verify','callback_checkCode','验证码错误!',0,'callback'), //使用回调函数checkCode ); //字段长度验证回调函数(ThinkPHP会自动帮我们传递参数) function callback_checklen($data){ if(strlen($data)>15 || strlen($data)<5){ return false; } return true; } //验证码回调函数(ThinkPHP会自动帮我们传递参数) function callback_checkCode($data){ if(md5($data)!=$_SESSION['verify']){ return false; } return true; } //自动完成,在create时自动执行 //array('填充字段','填充内容','填充条件','附加规则'); //填充字段 protected $_auto=array( array('password','md5',3,'function'), array('ip','callback_returnip',1,'callback'), array('createtime','time',1,'function'), ); function callback_returnip(){ return $_SERVER['REMOTE_ADDR']; } } ?>
array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );說明
驗證欄位:(必須)需要驗證的表單欄位名稱,這個欄位不一定是表單欄位,也可以是一些資料庫的一些輔助字段,例如確認密碼和驗證碼等等。有個別驗證規則和欄位無關的情況下,驗證欄位是可以隨意設定的,例如expire有效期限規則是和表單欄位無關的。 如果定義了欄位對應的話,這裡的驗證欄位名稱應該是實際的資料表欄位而不是表單欄位。 驗證規則:(必須)要進行驗證的規則,需要結合附加規則,如果在使用正規驗證的附加規則情況下,系統還內建了一些常用正規驗證的規則,可以直接作為驗證規則使用,包括: require 欄位必須、email 信箱、url URL位址、currency 貨幣、number 數字。
修改編輯新聞按鈕如下: CREATE TABLE `think_news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`author` int(11) NOT NULL,
`subject` varbinary(256) NOT NULL,
`createtime` int(11) NOT NULL,
`lastmodifytime` int(11) NOT NULL,
`message` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
其中,'__PUBLIC__'表示 <li><a class="shortcut-button" href="__URL__/news"><span> <img src="__PUBLIC__/Images/admin/icons/pencil_48.png" alt="icon" /><br />
编辑新闻 </span></a></li>
以上就介紹了第五天 ThinkPHP手把手快速拼接網站(五),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。