1.实现session的入库工具类
注意在注册使用的方法和函数的区别在于:
spl_autoload_register('handle');//这样注册的是一个函数
spl_autoload_register(array(object,handle));//此时是一个对象的指定方法,使用类名进行调用的情形也是这样的
这种情况在session_set_save_handle();//也是这么使用的
session入库的工具类就是一个比较好用的工具
【注意实现的工具类的设计和实现的工作:工具类相当于做扩展功能】
ini_set();//实现在脚本中对php的修正,只是对当前脚本生效
2.分类
删除分类部分,需要对关联的分类也进行处理【如果是直接删除一类,也是递归删除】
删除中需要删除失败的提示信息【工具类中也需要对错误的提示信息的显示】
尤其在针对数据库操作的情况都需要进行
【分类下的重名问题需要先查后插,这些是业务层需要仔细考虑的问题】
【实现后台页内数据的提交:对提交的数据进行针对性操作和持久化,这就是所谓的数据处理。cgi组件】
【重点】
3.验证码部分
验证码就是防止机器刷,导致被破解
【原理】
如何判断和生成验证码一致【是不是应该在js中生成验证码进行判断,减少服务器负载?】【js的话会被破解,不过也可以将验证码发到cookie,并且保存在session中】
【将生成的验证码保存在session并且将验证码发给用户】
【gd生成的也是一个资源】
【注意:gd库通常使用来加水印或者缩略图】
使用GD库进行验证码的生成步骤【使用gd库的函数进行处理】
(1)创建一个GD画布【imagecreate:新建一个画布。imagecreatefromjpeg:打开一个图片】【HTML5中canvas也是这样】
(2)操作画布【gd函数】
将某个php文件只要一旦执行就将该文件生成一个图片,然后将这个图片引入其他HTML中的图片标签中,实现验证码的展示【src引用该脚本,由于该脚本执行生成一个图片,所以该脚本就是一张图片看待】
【能否使用php生成数字(并且保存在session中),在js端进行画布创建,这样能够有效减轻服务器负载】
【将验证码进行服务器判断的原因:http://www.jb51.net/article/55263.htm】
【gd的基本操作】
<?php
$img = imagecreatetruecolor(500, 300);
//var_dumP($img);
//
//分配绿色
$green = imagecolorallocate($img, 0, 0xff, 0x0);
//var_dump($green);
//fill
$result = imagefill($img, 0, 0, $green);
//var_dump($result);
//导出
imagepng($img, './green.png');
//
imagedestroy($img);//将gd生成的资源进行销毁
【实现验证码】
(1)在指定路径上找到已经存在的背景图片,随机获取某张【进行打开:imagecreatefromjpeg()这样的方法】
(2)随机文字【字符数字等需要保存在session中】
(3)将生成验证码图片的代码包含入表单中,实现显示
(4)表单提交,并且与session进行比对
【以上就是验证码实现的机制,验证码的代码需要实际操作gd库进行创建工作】
【下面就是一个能够生成数字和对应session的代码】
【http://www.cnblogs.com/zox2011/archive/2011/09/14/2176251.html】
<?php
$image = imagecreate(50,25);
imagecolorallocate($image,0,0,0);
$color = imagecolorallocate($image,255,255,255);
$code = mt_rand(1000,9999);
session_start();
$_SESSION['code'] = $code;
imagestring($image,4,5,5,$code,$color);
header("content-type:image/png");
imagepng($image);
?>