ThinkPHP框架开发
2016-9-4 12:271. public function store(){ //1.获取提交的数据 $toInsertData =&nb...
1. public function store() { //1.获取post表单数据 $data=I('post.'); //2.上传文件 //2.1创建文件上传类对象 ...
任务一: display(); } public function store(){ $newsTable = M('news'); //dump(1); //获取数据: $data=I('po...
不启用layout布局
1、
2、
3、
作业1: public function store() { // 获取POST数据 $data = I('post.'); ...
1 public function store() { // 获取POST数据 ...
Web功能支持课堂笔记
---------------------------------------
Session支持:
1. Session基础知识:
(1)Session作用:服务器端文件,记录客户端的一些信息,方便在不同HTTP请求之间共享数据。
(2)Session使用流程:
a. 开启会话:session_start( )
b. 设置session:$_SESSION['name'] = '***';
c. 判断session是否存在:
if (isset($_SESSION['name']) && !empty($_SESSION['name'])) { // session信息存在 }d. 销毁session:$_SESSION['name'] = null; session_destroy();
(3)Session的存在 机制:
a. session默认存储在服务器端文件中,通过客户端cookie值(session_id)标识该文件
b. 很多种情况下,需要把session信息存储在数据库中(如购物车信息、用户设置信息等)
2. ThinkPHP中使用Session:
(1)session初始化设置:session( array( 设置参数 ) );
a. id参数:session_id的值
b. name:session_name的值
c. path:session_save_path的值
d. expire:session.gc_maxlifetime设置值(session过期时间)
e. type:session存储方式,支持驱动扩展,默认为服务器端文件存储
(2)session赋值:session('name', 'value');
(3)获取session值:
a. 获取单个session值:$value = session('name');
b. 获取所有session数组:$values = session( );
(4)删除session:
a. 删除单个session:session('name', null);
b. session(null);
(5)session判断是否存在:session('?name')
----------------------------------------------------------------------------
数据分页的支持:
1. 数据分页工作原理:
(1)SQL查询语句:select * from news limit 0, 10;
(2)转化:
a. 第1页:limit 0, 10
b. 第2页:limit 10, 10
c. 第3页:limit 20, 10
d. ……
n. 第p页:limit (p-1)*10, 10
(3)PHP代码实现:
a. 当前分页码:$page = $_GET['page'];
b. 每一页显示的个数:$pageSize = 10;
c. i当前页记录的开始下标:$offset = ($page - 1) * $pageSize;
c. SQL语句:$sql = "select * from news limit {$offset}, {$pageSize}";
2. ThinkPHP中分页查询的实现:
(1)使用Page类和limit方法实现:
// 1. 创建数据表操作对象(以news数据表为例) $db = M('news'); // 2. 获取当前表中记录总数 $count = $db->count( ); // 3. 定义每一页显示的记录个数 $pageSize = 10; // 4. 创建分页类对象 $Page = new \Think\Page($count, $pageSize); // 5. 设置分页链接样式 $Page->setConfig( ); // 6. 获取分页链接 $show = $Page->show( ); // 7. 获取当前页数据 $list = $db->limit( $Page->firstRow . ', ' . $Page->listRows ) -> select( ); // 8. 把结果赋值给视图模板 $this->assign( 'pages', $show); $this->assign('list', $lisg);
(2)分页样式的定制:通过分页类对象的 setConfig( ) 方法定义分页样式。
---------------------------------------------------------------------------
验证码的支持:
1. 验证码使用流程:
(1)在控制器类中定义生成验证码的方法
a. 该方法必须是 public 方法(需要外部访问)
b. 该方法只能输出验证码图片,不能包含其它任何内容(不能有layout视图,不能有文字信息等)
(2)在HTML表使用<img src="验证码图片地址" /> 显示验证码(验证码图片地址,即为上一步所定义的控制器方法)
(3)表单数据提交后,校验验证码的有效性
2. 生成验证码:
(1)配置验证码参数:$config = array ( 参数列表 );
(2)创建验证码类对象:$Verify = new \Think\Verify( $config );
(3)生成验证码:$Verify->entry( $id );
a. 该行代码即为生成验证码图片,其后不允许再有任何代码
b. 生成验证码时建议传入 $id 参数(字符串参数),以区分不同的验证码
3. 验证码校验:
(1)创建验证码对象:$Verify = new \Think\Verify( );
(2)校验验证码的有效性:$Verify->check( 表单传递的验证码值, $id )
a. $id即为生成验证码图片时传递的字符串参数
b. 若校验成功,返回true;否则返回false
----------------------------------------------------------------
文件上传:
1. 文件上传基础知识:
(1)HTML表单基础:
a. method = "post"
b. enctype="multipart/form-data"
(2)限制文件的上传大小:
a. php.ini配置文件中限定:upload_max_filesize 和 memory_limit
b. 表单的隐藏域限定:<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
(3)文件上传后的处理:
a. 可以使用 $_FILES[ ] 获取上传的文件的基本信息
b. 可以使用move_uploaded_file( )移动文件(从临时文件目录,移动到自定义目录)
2. ThinkPHP中上传文件的支持:
(1)定义文件上传参数:$config = array( 参数列表 );
a. maxSize:文件上传的最大文件大小(以字节为单位,0表示不限大小)
b. rootPath:文件上传保存的根路径
c. savePath:(相对于根路径)文件的保存路径
d. saveName:文件上传后的保存名称,若设置为空字符串,则使用原始文件名称
e. exts:允许上传的文件后缀,若为空字符串,表示不限制后缀
(2)创建文件上传类:$upload = new \Think\Upload($config);
(3)处理文件上传:$info = $upload->upload( );
a. 若文件上传成功,$info为二维数组形式;若文件上传失败,$info为false
b. $info中每一个元素为一关联数组,记录了文件上传后的基本信息:
b.1. key:文件的原始表单名称(name属性值)
b.2. savepath: 文件的保存路径
b.3. savename: 文件的保存名称
1、 2、 3、
1. public function store() { // 获取POST数据 $data = I('post.'); //上传文件 //1.创建文件上传类对象 $upload=new Upl...
//1、 public function store() { // 获取POST数据 $data = I('post.'); //上传文件 //1、创建对象 $dateba...
//第一题 public function store() { //实例化数据库对象 $this->_db = M('news'); // 获取POST数据 $data = I('post...
1、/admin/news/store/ public function store() { layout(false); //1.获取数据 $data=I('post.'); //du...
public function store(){ //1.获取提交的数据 $toInsertData = I('post.'); ...
1、 public function store(){//执行新闻插入数据库操作 $Model = M("news"); if(!$Model->create()){ $this->error($Model...
1. 2.
1、 2、
1. 2.
1. 第2题
给 #ThinkPHP框架开发# 指派了新任务。
task6:Web功能支持
1. 已知有以下HTML表单,接收用户上传的数据并插入到数据表中(数据表字段名即为表单控件的name属性值),请编写/admin/news/store方法核心代码。
<form action="/admin/news/store" method="po...
序号的获取还没成功,还在调试,目前为1
1. 2.