实现商品的添加
1、在add.html页面中更改表单元素的名称
Goods控制器的add()方法中获取商品分类
在add.html中循环获取
2、设置提交的位置
3、添加商品代码参见GoodsController.class.php
方法一:
$this->redirect();也是跳转
方法二(用create创建数组):
create()的作用:
1、将表单元素的值和数据库中的字段一一匹配。
2、讲数据库中没有的字段在数组中去除。
PHP中添加的语法如下:
success()和error()方法是thinkphp自带的执行成功和失败的方法,可以用此方法来实现跳转。
方法三:
I()函数
I()用来获取get、post、sessioncookie等等的数据。
语法:I('变量的类型.变量的名称',[默认值],[过滤方法])
变量类型 |
描述 |
Get |
获取get提交的参数 |
Post |
获取POST提交的参数 |
param |
自动判断是get还是post |
request |
获取request提交的数据 |
Session |
获取会话的数据 |
Cookie |
获取cookie数据 |
server |
类似是$_SERVER[]; |
globals |
获取$GLOBALS参数 |
path |
获取pathinfo模式的url参数 |
用法:
描述 |
例题 |
获取get提交的name变量 |
I('get.name') |
获取get提交的name变量并指定默认值 |
I('get.name','李白') |
获取值后并调用函数处理数据 |
I('get.name',' ', mysql_real_escape_string,trim); |
获取所有get提交的数据 |
I('get.') |
此配置文件是默认的I的过滤参数
修改商品
update.html中添加隐藏域。
GoodsController.class.php页面中代码如下:
$this->success()中跳转的路径一定要用U()转换。
U方法
U()用来生成URL地址,配合“'URL_MODEL' => 0,”配置来使用,配置的值不同,生成的URL地址就不同
$this->sucess(),里面的路径一定要用U()方法来生成URL。
删除商品
HTML页面
在控制器中代码如下:
验证码
TP框架中自带了验证码类
位置:Think/verify.class.php
在LoginController控制器中创建生存验证码的方法
login.html登陆模板中
在LoginController控制器中判断验证码是否正确并且判断登陆是否成功
文件上传
用到的知识点:
1、文件上传的时候,要设置表单的enctype属性
2、$_FILE[名字][]用来接收文件的信息
第二维的字段:
name
size
error
type
tmp_name
3、move_uploaded_file(临时文件,目标文件)
ThinkPHP自带了文件上传的类。位置:Think/Upload.class.php
生成缩略图
缩略图类存放的位置 ThinkImage.class.php
自定义工具类
在application文件夹下新建一个components文件夹,此文件夹中存放自定义的工具类。
在components文件夹下新建一个EmailTool.class.php文件
在控制器调用
TP中的session和cookie
session('name') 获取名字是name的会话
session('name','李白'); 将'李白'付给name会话
session('name',null); 清空name的会话
session(null); 清空所有会话
------------------------------------
cookie('name') 获取名字是name的cookie
cookie ('name','李白'); 将'李白'付给name cookie
cookie ('name',null); 清空name的cookie
cookie (null); 清空所有cookie
命名空间
当开发大型项目的时候,可以会需要成千上万的文件
面向对象通过命名空间来解决这个问题的。
PHP命名空间是PHP5.3以后才出现的。
命名空间中可以出现:类,函数,常量
只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。
命名空间是逻辑上的定义,逻辑的名称 不是物理上的路径
Tp中为了寻址的方便把命名空间做成地址
命名空间的声明和使用(namespace1.php)
命名空间的多级访问一(namespace2.php)
命名空间的多级访问二(namespace3.php)
空间元素访问的三种形式
1、非限定名称访问
echo getInfo()
类似于:require ('getinfo.php');
2、限定名称访问,是相对限定
ChinagetInfo();
类似于:requrie ('China/getInfo.php');
3、完全限定访问
ChinagetInfo();
类似于 requre ('c:Chinagetinfo.php');
引用命名空间(namespace4.php)
命名空间的注意事项:
1、最顶层的表示的是公共空间
2、namespace必须在最上面。
3、命名是虚拟的空间,不是真实存在的目录,但是ThinkPHP的命名空间是真实的地址路径。
4、当前文件中include具有命名空间的文件,不会改变当前文件的命名空间。
5、use有两个作用 引入命名空间 引入类