6월 11일, 화창한 날. "자두는 이를 시리게 하고, 바나나는 녹색과 방충망으로 갈라진다. 긴 하루를 보낸 후 아이들이 버드나무 꽃을 잡는 모습을 보며 잠을 잔다." 🎜>
10. 백엔드 쓰기-계속-2
<?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>$User </span><span>=</span><span> D</span><span>(</span><span>'User'</span><span>);</span>
는 <code><span>实例化User模型,会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,所以,实际上的代码可能和下面的等效:</span>
가 아래의 현재 프로젝트 Lib/Model/UserModel.class.php 파일로 가져올 User 모델을 인스턴스화한 다음 UserModel 클래스를 인스턴스화한다는 의미이므로 실제 코드는 다음과 동일할 수 있습니다. <span style="font-family:Comic Sans MS;font-size:14px;"> import('@.Model.UserModel'); $User = new UserModel();</span>이후 create()가 데이터 개체를 생성한 후 제출된 양식 데이터가 자동으로 수집됩니다.
데이터 테이블에 양식을 작성하기 전에 일부 데이터 감지(제출된 사용자 이름이 요구 사항을 충족하는지 여부) 및 처리(예: 예의 인증 코드 비교)가 있는 경우가 많습니다. create() 메소드는 데이터 자동 확인 및 자동 완성을 지원합니다. > 모델 클래스.
<?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,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );설명
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;
5. adminTplIndexindex.html
수정 뉴스 편집 버튼을 다음과 같이 수정하세요.
<li><a class="shortcut-button" href="__URL__/news"><span> <img src="__PUBLIC__/Images/admin/icons/pencil_48.png" alt="icon" /><br /> 编辑新闻 </span></a></li>사이트 공개 디렉터리,
'__URL__'<code><span> 其中,'__PUBLIC__'表示</span>
은 현재 모듈의 URL 주소를 나타냅니다. <span>站点公共目录,<code>'__URL__'
위 내용은 ThinkPHP 단계별 빠른 웹사이트 접합(5) 5일차 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.