ThinkPHP框架开发

2016-9-4 12:27
请先登录。
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
 1. public function store(){     //1.获取提交的数据     $toInsertData =&nb...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. public function store() { //1.获取post表单数据 $data=I('post.'); //2.上传文件 //2.1创建文件上传类对象 ...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
任务一: display(); } public function store(){ $newsTable = M('news'); //dump(1); //获取数据: $data=I('po...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
不启用layout布局

1、

2

3、

#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
作业1: public function store() {         // 获取POST数据         $data = I('post.');    ...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
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: 文件的保存名称



    

#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、 2、 3、
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. public function store() { // 获取POST数据 $data = I('post.'); //上传文件 //1.创建文件上传类对象 $upload=new Upl...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
//1、 public function store() { // 获取POST数据 $data = I('post.'); //上传文件 //1、创建对象 $dateba...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
//第一题 public function store() { //实例化数据库对象 $this->_db = M('news'); // 获取POST数据 $data = I('post...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、/admin/news/store/ public function store() { layout(false); //1.获取数据 $data=I('post.'); //du...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
public function store(){     //1.获取提交的数据     $toInsertData = I('post.');     ...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、 public function store(){//执行新闻插入数据库操作 $Model = M("news"); if(!$Model->create()){ $this->error($Model...
#ThinkPHP框架开发# 的任务 task5:视图模板的基本使用 有了新的提交。
1. 第2题

#ThinkPHP框架开发# 指派了新任务。
task6:Web功能支持
1. 已知有以下HTML表单,接收用户上传的数据并插入到数据表中(数据表字段名即为表单控件的name属性值),请编写/admin/news/store方法核心代码。 <form action="/admin/news/store" method="po...

#ThinkPHP框架开发# 的任务 task5:视图模板的基本使用 有了新的提交。
序号的获取还没成功,还在调试,目前为1