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

?>

 

昵    称:
验证码:

相关文档:

  • HTML5 全屏特性
    全屏功能是浏览器很早就支持的一项功能了,可以让你页面中的video,image,div等等子元素实现全屏浏览,从而带来更好的视觉体验,来看看...
  • HTML5之图形变换
    -Transformations scale(0.5,0.5)缩放rotate(0.175) 旋转translate(100,50) 位移 -代码结构 context.scale(x,y) context.rotate(angle) context.translate(x,y) context...
  • html5中manifest特性测试
    测试环境和工具chromium18.0.1025.151(开发编译版130497Linux)Ubuntu11.04 一、测试内容 1.A页面manifest缓存的js文件,B页面不设manifest是否能使用缓...
  • HTML5中表单验证的8种方法(转)
    在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,它为终端用户检测无效的控件...
  • html5 web 摇一摇切换歌曲
    1<!DOCTYPEhtml> 2<htmllang="en"> 3<head> 4<metacharset="utf-8"/> 5<metaname="viewport"content="width=device-width,initial-...
  • 移动前端HTML5 UI 框架Onsen UI – 新潮 PhoneGap 界面框架
    OnsenUI是一个基于元素自定义的HTML5UI框架,用于构建你的移动前端。这个一个基于Web组件的概念的框架,让构建应用程序变得更加轻松。O...
  • HTML5 Canvas绘制的下雪效果
    在HTML页面的HEAD区域直接引入snow.js即可,如下:<scripttype="text/javascript"src="js/snow.js"></script> snow.js地址:http://pan.baidu.com/s/1gd5XCLd...
  • HTML5+JS 《五子飞》游戏实现(七)游戏试玩
    前面第一至第六章我们已经把《五子飞》游戏的基本工作都已经讲得差不多了,这一章主要是把所有的代码分享给大家,然后小伙伴们也...
  • 关于HTML5 存储中indexedDB的一些问题
    IndexedDB是一种可以让你在用户的浏览器内持久化存储数据的方法。IndexedDB为生成WebApplication提供了丰富的查询能力,使我们的应用在在线...
  • 使用Html5的DeviceOrientation特性实现摇一摇功能
    如今非常多的手机站点上也有类似于微信一样的摇一摇功能了,比方什么摇一摇领取红包,领取礼品等等 1,deviceOrientation:封装了...
  • html5 的draggable属性使用<转载收藏>
    在HTML5中,已经支持在浏览器与其他应用程序之间的数据互相拖动,同时也大大简化了有关于拖放方面的代码。 实现拖放的步骤 在HTML5中...
  • 50个最受网友欢迎的HTML5资源下载列表
    完整附件下载地址:http://down.51cto.com/data/413867附件预览: HTML5游戏源码精选(共含9个游戏源码) http://down.51cto.com/zt/227 15个HTML5入门经典...
  • html5[1]:优化Android Webview性能
    尽量少用position:relative 做一个OTO项目时,页面上下滑动时,颤抖的很厉害; 页面中主要是图片比较多,开始以为是图片多的原因,但是...
  • HTML5 placeholder实际应用经验分享及拓展
    QQ邮箱登陆(http://mail.qq.com) 如下截图啦: 我在上面一个demo类似原理上做了下修改,制作了一个这样子交互效果的demo,希望对有兴趣的同...
  • HTML5之拖放
    -Draggable标签文件拖放 99年IE5开始,05后所有浏览器支持(除了opera) <liid=bedraggable=trueondragstart="startDrag(event)">Brussels</li>...
  • HTML5系列文章(二)
    HTML5新增的表单控件 开文之前先备注一下我了解到的提高可访问性的两个小技巧: 为lable标签写上for属性,for属性用于引用与其相关联的...
  • jquery_mobile.js+html5+css3打造手机平板等各种效果
    http://www.w3school.com.cn/jquerymobile/jquerymobile_events_orientation.asp...
  • Web前端快速编写代码神器HTML/CSS/JavaScript Emment(原名Zen coding)
    Emmet的前身是大名鼎鼎的Zencoding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高...
  • html5+css3学习笔记音频和视频
    格式IEFirefoxOperaChromeSafari Ogg No 3.5+ 10.5+ 5.0+ No MPEG4 9.0+ No No 5.0+ 3.0+ WebM No 4.0+ 10.6+ 6.0+ No Ogg=带有Theora视频编码和Vorbis音频编码的Ogg...
  • html5跨域数据传递(postMessage)
    在html5中有个支持跨域传递的方法postMessage,可是实现iframe之间的数据传递! 代码如下:数据发送页面 <!DOCTYPEHTML> <htmllang="en"> &...