山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

制作验证码

与图片处理步骤一样,但是字符串随机生成即可。

clip_image002

中文写入

要使用中文,必须满足两个条件:必须要有字体文件,只能使用imagettftext函数

array imagettftext ( resource $image , 字体大小, 旋转角度 ,起始x , 起始y , 颜色 , 文字字体 ,文字 )

clip_image004

封装验证码类

1. 在前台的公共文件夹中建立一个验证码类:/includes/Captcha.class.php

clip_image006

2. 增加属性:长,宽,字体大小,字符串长度,干扰点数量,干扰线的数量

clip_image008

3. 初始化属性:构造方法

a) 配置文件中增加验证码的配置项。/config/config.php

clip_image010

b) 初始化的时候,使用配置文件中的默认值。/includes/Captcha.class.php

clip_image012

4. 产生验证码图片

a) 干扰线的制作

imageline:给指定的画布增加线段

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

clip_image014

b) 干扰点的制作

bool imagesetpixel ( resource $image , int $x , int $y , int $color ),增加干扰点

clip_image016

c) 增加验证码文字

clip_image018

项目应用验证码

1. 图片必须存放到img标签中,才能与其他表单元素一起存在,因此需要在登录界面增加一个img标签用于存放验证码。/admin/templates/login.html

clip_image020

2. img标签必须得到图片内容,必须要有src属性,必须请求权限文件。/admin/templates/login.html

clip_image022

3. 接收请求,处理请求。/admin/privilege.php?act=captcha

clip_image024

4. 直接使用验证码类的对象去产生验证码图片就行。/admin/privilege.php?act=captcha

clip_image026

5. 验证验证码信息:用户提交与服务器生成进行比较

a) 保证服务器生成的验证码能够跨脚本:在生成验证码的时候将验证码存放到session中。/includes/Captcha.class.php

clip_image028

b) 接收用户提交的验证码数据。/admin/privilege.php?act=check

clip_image030

c) 验证码的合法性验证。/admin/privilege.php?act=check

clip_image032

d) 验证码的有效性验证。/admin/privilege.php?act=check

新增验证码验证方法:/includes/Captcha.class.php

clip_image034

调用验证方法验证:/admin/privilege.php?act=check

clip_image036

6. 将session开启放到init文件中,因为后台所有的界面都需要使用session。/admin/includes/init.php

clip_image038

7. 点击验证码图片更新验证码。通过js事件改变img的src属性。/admin/templates/login.html

能够让浏览器发起请求的原理:当前的url与之前的url不同了

clip_image040

商品分类

数据表设计

所有的商品分类都是同样的信息,同时还应该能够区分出谁是谁的子类

可以通过每条记录增加一个字段,字段叫做父级分类,保存父级分类的id即可。

clip_image042

posted on 2016-04-21 23:46  山山未迟  阅读(570)  评论(0编辑  收藏  举报