PHP处理图片:借助GD扩展
处理步骤:准备画布;分配颜色(背景,文字,干扰);操作画布(干扰+写字);保存画布(输出+保存);销毁资源。
验证码:搭配session技术
1. 第一件事情:一定是要先考虑如何让用户能够进行操作。新增一个商品分类的菜单选项,用户可以点击查看所有的商品分类。/admin/templates/menu.html
2. 创建一个商品分类的模块,处理所有跟商品分类相关的请求。/admin/category.php
3. 取出商品分类的所有数据,并在模板中显示。
a) 创建一个商品分类表对应的类。/admin/includes/Category.class.php
b) 得到商品分类类的对象,操作数据库获取所有的商品分类的信息。/admin/category.php?act=list
c) 增加一个能够获取所有商品分类的方法。/admin/includes/Category.class.php
d) 在模板中显示所有的商品分类信息。/admin/templates/category_list.html
4. 无限级分类:在category类中对数据进行无限级分类处理好。/admin/includes/Category.class.php
5. 通过level属性来确定当前商品分类的缩进信息。/admin/templates/category_list.html
1. 增加一个能够给用户添加商品分类的入口。/admin/templates/category_list.html
2. 接收动作之后,处理动作。/admin/category.php?act=add
3. 获取所有的商品分类信息。/admin/category.php?act=add
4. 显示所有的商品分类。/admin/templates/category_add.html
5. 确定表单的去向。/admin/templates/category_add.html
6. 接收用户动作,处理请求。/admin/category.php|act=insert
a) 修改接收用户动作的方式
b) 处理动作
c) 有效性验证:不允许同名。
d) 添加验证方法。/admin/includes/Category.class.php
e) 验证结果。/admin/category.php?act=insert
f) 插入数据库。
g) 新增插入商品分类的方法。/admin/includes/Category.class.php
h) 判断插入结果。/admin/category.php?act=insert
1. 给用户提供一个可以删除商品分类的操作接口。/admin/templates/category_list.html
2. 接收请求,处理请求。/admin/category.php?act=del
3. 对要删除的数据进行有效性验证:当前商品分类只能是没有子分类的商品分类才能删除。
4. 创建判断节点是否是叶子节点的方法。/admin/includes/Category.class.php
5. 判断验证结果。/admin/category.php?act=del
6. 删除商品分类。
7. 创建删除商品分类的方法。/admin/inclucdes/Category.class.php
8. 增加删除的基础方法。/includes/DB.class.php
1. 增加操作入口。/admin/templates/category_list.html
2. 接收动作请求,处理请求。/admin/category.php?act=edit
3. 创建获取商品分类的方法。/admin/includes/Category.class.php
4. 将或的数据显示给用户看。加载显示数据的模板。/admin/category.php?act=edit
5. 在模板中显示数据。/admin/templates/category_edit.html
6. 获取所有的商品分类,并显示。
a) 获取。/admin/category.php?act=edit
b) 在模板中显示。/admin/templates/category_edit.html
c) 在模板中应该默认显示当前商品分类的父级分类。/admin/templates/category_edit.html
三目运算代码
7. 编辑商品分类可以修改商品分类的父分类,但是如果父分类选择的是自己或者自己的子分类的话,那么对应的分类及其子分类全部失效。
解决方案:在进行无限级分类的时候,如果碰到一个不需要查找其子分类的时候,应该适当的终止,不再递归调用。
a) 在调用获取无限级分类的时候,必须显示的告诉方法,不要获取指定分类id的子分类
调用时指定不需要获取子分类的id
b) 当前方法并不进行无限级分类,所以需要将该停止id传递给无限级分类方法。
c) 在无限级分类方法中,对stop_id进行判断,并进行适当处理。
8. 用户编辑之后提交数据。确定用户表单提交的脚本。/admin/templates/category_edit.html
9. 增加隐藏域,将当前商品分类的id给传过去。/admin/templates/category_edit.html
10. 服务器接收请求,处理动作。/admin/category.php?act=update
a) 合法性验证
b) 有效性验证:不允许重名,保证当前商品分类的名字不去查自己的。
c) 修改验证商品分类名称的方法,使其能够根据商品分类的id来进行商品分类名字的判断。/admin/includes/Category.class.php
d) 更新数据:调用类的方法操作数据库。/admin/category.php?act=update
11. 创建方法更新数据。/admin/includes/Category.class.php
12. 查询商品分类信息的时候,应当根据商品分类的排序字段进行排序。/admin/includes/Cateogry.class.php
在DB类中增加一个方法,能够构造一个完整的表名:前缀+名字
在任何类中,如果需要在SQL语句中使用表名,就调用该方法去获取表名即可。
考虑到SQL语句有可能出现多表连接查询,需要得到多张不同表的表全名,所以应该更新生成表全名的方式
联系客服