session工具类作为项目中使用【注意注册为对象内方法的array使用】、分类的使用、验证码【重点】

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);

?>

原文地址:https://www.cnblogs.com/shuoshuren/p/4232527.html