第四天 ThinkPHP手把手快速拼接网站(四)
来源:互联网 发布:淘宝开服装店 条件 编辑:程序博客网 时间:2024/04/29 21:25
6月6日,晴天。“熟梅天气豆生蛾,一见榴花感慨多。芒种积阴凝雨润,菖蒲修剪莫蹉跎。”
九、后台编写-续-1
1、修改admin/Tpl/Login/index.html
自己修改logo,用户名、密码都改为中文。文本框分别添加name="username",name="password"。
重点修改<form action="index.html">,改为<form action="__URL__/login" method="post">
解释: __URL__是当前模块的URL地址。
在PHP里:__URL__ 当前模块的URL地址
在模版里:__URL__ 会替换成当前模块的URL地址(不含域名)
action="__URL__/login" 是提交到当前模块的login方法下
2、编写Login模块的login方法
<?phpclass LoginAction extends Action {function index() {// 配置页面显示内容$this->assign ( 'title', '后台管理系统' );$this->display ();}//用户登录页面function login(){header("Content-Type:text/html; charset=utf-8");//首先检查验证码是否正确(验证码存在Session中)if($_SESSION['verify'] != md5($_POST['verify'])){$this->error('验证码不正确');}$user=M('User');//参数的User必须首字母大写,否则自动验证功能失效!$username=$_POST['username'];$password=md5($_POST['password']);if(!$this->checklen($username)){ $this->error('用户名长度必须在5~15个字符之间'); }//查找输入的用户名是否存在 if($user->where("username ='$username' AND password = '$password'")->find()){session(username,$username);$url=U('/Index/index/username/'.$username);redirect($url,0, '跳转中...'); }else{$this->error('用户名或密码错误'); }}function checklen($data){if(strlen($data)>15 || strlen($data)<5){return false;}return true;}}其中,
$user = M('User');
表示实例化User模型,其实等效于:
$User = new Model('User');表示操作think_user表。在没有定义任何模型的时候,我们可以使用M方法实例化一个模型类来进行操作,这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD操作。
M方法的调用格式:M('[基础模型名:]模型名','数据表前缀','数据库连接信息')
M方法有三个参数,第一个参数是模型名称(可以包括基础模型类和数据库),第二个参数用于设置数据表的前缀(留空则取当前项目配置的表前缀),第三个参数用于设置当前使用的数据库连接信息(留空则取当前项目配置的数据库连接信息)
第二个参数留空默认表前缀think_, 第三个参数留空,则需要配置admin\Conf\config.php
<?php$arr1=array(//'配置项'=>'配置值''URL_MODEL'=>1,//path-info 模式);$arr2=include './config.inc.php';return array_merge($arr1,$arr2);?>config.inc.php配置
<?php return array('DB_TYPE'=>'mysql','DB_HOST'=>'localhost','DB_NAME'=>'tp',//数据库名'DB_USER'=>'root',//用户名'DB_PWD'=>'root',//密码'DB_PORT'=>'3306','DB_PREFIX'=>'think_',//数据库表名前缀);?>
M('User');
表示实例化User模型
,模型名字是User,该模型就是数据库表think_userdrop table if exists think_user;/*==============================================================*//* Table: think_user *//*==============================================================*/create table think_user( id int(11) not null auto_increment, username char(15) not null, password char(40) not null, createtime int(11) not null, ip char(16) not null, primary key (id));
代码释义:
ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于CURD等任何操作,作为where方法的参数传入即可: if($user->where("username ='$username' AND password = '$password'")->find())。 最后生成的SQL语句是SELECT * FROM think_user WHERE `username`='admin' and `password`='admin'。
Session赋值比较简单,直接使用: session(username,$username);相当于:$_SESSION['username'] =$username;
$url=U('/Index/index/username/'.$username);中username是传递的参数名,$username是参数值。
redirect($url,0, '跳转中...');Action类的redirect方法可以实现页面的重定向功能。用法是停留0秒后跳转到Index模块的index操作,并且显示页面跳转中字样,重定向后会改变当前的URL地址。
3、 修改admin/Lib/Action/IndexAction.class.php,如下:
<?php// 本类由系统自动生成,仅供测试用途class IndexAction extends Action {public function index() {if (session ( '?username' )) {$this->display();} else {$this->error ( '亲,您好,请先登录!', U ( '/Login/index/' ) );}}}代码释义:
this->assign('name',$value); //在 Action 类里面使用 assign方法对模板变量赋值,无论何种变量类型都统一使用 assign 赋值。
$this->display() // 输出默认模版文件
模板默认输出是指输出指令 display 方法中不带任何参数,系统默认输出对应模板,即admin/Tpl/Index/index.html。
5、访问:http://localhost/MyFirstThinkPHP_1/admin.php ,呵呵,出来了!需要在建好的数据库表think_user中填写username为admin,password为admin(21232f297a57a5a743894a0e4a801fc3)。
- 第四天 ThinkPHP手把手快速拼接网站(四)
- 第六天 ThinkPHP手把手快速拼接网站(六)
- 第三天 ThinkPHP手把手快速拼接网站(三)
- 第五天 ThinkPHP手把手快速拼接网站(五)
- 第二天 天生韵味入千家-ThinkPHP手把手快速拼接网站(二)
- 第一天 信手拈来无意句-ThinkPHP手把手快速拼接网站(一)
- 使用ThinkPHP框架快速搭建网站(通俗易懂)
- 【android】手把手轻松集成微信支付
- 使用ThinkPHP框架快速开发网站(多图)
- 使用ThinkPHP框架快速搭建网站【转】
- 使用ThinkPHP框架快速开发网站(多图)
- ThinkPHP框架快速搭建网站 教程
- 使用ThinkPHP框架快速开发网站(多图)
- 使用ThinkPHP框架快速开发网站(多图)
- 使用ThinkPHP框架快速搭建网站
- 使用ThinkPHP框架快速搭建网站
- 使用ThinkPHP框架快速开发网站(多图)
- 使用ThinkPHP框架快速搭建网站
- 数据表操作
- [latex]通过画图来查找符号的latex命令
- 《鸟哥的Linux私房菜》读书笔记4
- 《鸟哥的Linux私房菜》读书笔记5
- Palindrome Number
- 第四天 ThinkPHP手把手快速拼接网站(四)
- Never to be Late
- 别的地方看到的
- Linux 查找某时间段内的所有文件
- 19+ JavaScript Shorthand Coding Techniques
- 第十四周项目二 用文件保存的学生名单
- SQLite外键
- Maxwell-Boltzmann分布函数的推导
- 甘特图——Excel搞定