登录标志
在 存储登录标志时,获取当前管理员信息,存储到session中:
Back/AdminController->checkAction();
需要back/AdminModel->check()方法,返回的为管理员信息(合法情况下):
在back/PlatformController->_checkLogin()中验证管理员是否登录时,使用admin下标:
退出时,销毁的也是该标志:
Back/AdminController->logoutAction();
shop34-19-商品添加
功能:添加商品表单
Index.PHP?p=back&c=Goods&a=add
Controller-Action:
新建商品控制器类
Application/back/controller/GoodsController.class.PHP
addAction():
Model:
View-template:
增加视图层模板:
Application/back/view/goods_add.html
需要相应的js:
留下部分选项卡,及表单元素:
补充
Back/view/menu.html
功能:处理商品添加数据
Index.PHP?p=back&c=Goods&a=insert
控制器-动作
Back/GoodsController->insertAction();
CheckBox在提交时:
如果选中:则其值为value属性的值。
如果未选中:则表单不会提交其数据(_POST中没有该元素)
推荐:
采用数组方式命名,并且值就是需要插入到表中的数据:
处理:
实现insertAction();
模型
为goods表建立操作模型:
Application/back/model/GoodsModel.class.PHP
格式化字符串:
Sprintf()可以完成对字符串的格式化:
Sprintf(格式,格式中需要的数据)
Tip:数据参与sql的执行,一定要防止sql注入,使用转义!
此时在模型层面,提供可以对数组内的所有数据,进行批量转义功能:
Back/GoodsModel->insertGoods()
视图-模板
补充:
商品列表
shop34-20-表前缀的处理
模型-前缀处理
真实表名 = 前缀(项目) + 逻辑表名(功能)
前缀:通过配置文件配置。
逻辑表名:模型类自身来确定。
拼凑真实表名:
基础模型中,增加初始化真实表名的操作:
表名使用反引号包裹!
实例化模型对象时,完成对真实表名的初始化工作:
基础模型的构造方法中:
使用真实表名:
在模型中,拼凑sql语句时,使用$this->_table:
shop34-21-文件上传工具
文件上传
上传:
从浏览器端传输的到服务器端。
请求时:
数据从浏览器端传输到服务器端。
可见:
上传,发生在浏览器向服务器发出请求过程中。
浏览器表单中的数据:两种类型。
1, 字符串类型。(字节流编码)
2, 文件类型。(二进制编码)
(tip:文件就是表单中数据的一部分)。
提交表单时,浏览器自动将表单内的数据,传输到服务器端,文件型也会包含在内。
服务器角度:
在接受浏览器的请求时,处理好表单内数据。
根据数据类型不同(2种),采用不同的处理方法:
1, 字符串类型,存储在$_POST变量中(内存中)
表单提交时:浏览器会默认的认为,表单内的数据都是字符串类型(即使使用file文件域),通过在form上,增加属性,告知浏览器表单内的数据类型不仅仅有字符串。
Form enctype=”multipart/form-data”
将文件,存储于上传临时目录。就是临时文件,有效期脚本周期内有效。
默认为服务器操作系统临时目录。
函数:
Move_uploaded_file(上传临时地址,目标地址);
完成
需要使用$_FILES数组,存储了上传的临时文件的信息,包括临时地址!
每个上传的临时文件,有5个信息,name:原始文件名,type:类型,tmp_name,临时地址,error:是否有错误及错误类型,size:大小。
典型的上传代码
类型:表示方式 2种:
MIME(多用途internet邮件扩展):网络上传输资源时,使用的资源类型表示方法。
Text/html; image/png
后缀名截取:
$file = 'x.y.z.png';
echo strrchr($file, '.');
// 找到字符串中某个子字符串的最后出现位置,从该位置截取到字符串末尾。
Array_merge()数组合并
array_unique()去掉数组中重复的元素值
使用原名。(重名,特殊字符, 不具备逻辑含义)
起名:uniqID();
UniqID()可以生成一个唯一的字符串,并且允许设置前缀。
类型检测:
后缀和MIME
以上两个值,都是由浏览器端请求提供的。
需要服务器PHP自身完成MIME的检测:
需要 PHP的扩展: fileinfo 完成对文件的信息的检测。
提供面向对象和函数两套语法:
使用面向对象语法吧:
开启该扩展:
Apache restart
Mkdir(目录地址)创建目录
Is_dir(目录地址)检测目录
Date()获得日期时间
项目中使用
上传的工具类:
完成自动加载:
添加商品时使用:
Back/GoodsController->insertAction();
模型中,处理goods_image_ori:
Back/GoodsModel->insertGoods();
修改表单,使之可以上传文件,并设置file表单元素,起名字。
Back/iew/goods_add.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。