手机版

PHP jQuery注册模块的改进(1):将验证码保存到SESSION中

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

要修改的几个文件:

(1)register.php生成随机数和加密值

将register.html改为register.php并开放会议;

在register.js的register.js中编写生成随机数的函数,改用php方法

?PHP session _ start();Php //生成随机数函数show val(){ $ num=' ';for($ I=0;$ i4$i ){ $tmp=兰特(1,15);if($ tmp 9){ switch($ tmp){ case(10): $ num。=' a打破;案例(11):美元。=' b打破;案例(12):美元。=' c打破;案例(13):美元。=' d打破;案例(14):美元。=' e打破;案例(15):美元。=' f打破;} } else { $num。=$ tmp} }返回$ num}//生成随机数$ mdnum=MD5(show val());//将随机数和加密随机数存储在session $ _ session[' num ']=show val();$ _ SESSION[' mdnum ']=$ mdnum;-验证码-div class=' ipt IP tend '输入类型=' text' id=' yzm' name=' yzm '占位符='验证码'自动完成=' off '/img id=' yzmic ' src=' valcode.php?num=?php echo $ mdnum?'style=' cursor : pointer ' title='验证码' alt='验证码' a style=' cursor : pointer ' id=' changea ' img id=' refpic ' src=' http 3360 templates/images/ref . jpg ' alt='刷新验证码'/a span id='yzmchk'/span /div在会话中存储生成的4位验证码和md5加密验证码,而客户端验证码图片的src属性的参数为加密值,因此

(2)valcode.php将随机数写入图形

在register.php,验证码图片的地址是

img id='yzmpic' src='valcode.php?num=?php echo $ mdnum?'因此,在valcode.php,它需要被相应地修改,而修改是把原来的:

//直接发送客户端输入的值$ num=$ _ GET[' num '];修改为:

session _ start();标头(' content-type : image/png ');//保存生成的4位随机数和ms5加密随机数if(isset($ _ session[' mdnum '])$ _ session[' mdnum ']!=' '){ $ mdnum=$ _ SESSION[' mdnum '];if(isset($ _ GET[' num '])$ _ GET[' num ']!=' '){//if($ _ get[' num ']=$ mdnum){ if(isset($ _ session[' num '])$ _ session[' num ']!=' ')//将会话中保存的4位随机数赋值为$ num $ num=$ _ SESSION[' num '];}}},即当客户端图片传递的加密参数与会话中存储的加密值相同时,将会话中存储的4位验证码写入图形。

valcode.php的完整法典是:

?PHP session _ start();header(' charset=utf-8 ');if(isset($ _ POST[' yzm '])$ _ POST[' yzm ']!=' '){ $ yzm=$ _ POST[' yzm '];if(isset($ _ SESSION[' num '])$ _ SESSION[' num ']!=''){ //当输入的验证码和会议里保存的数字一致时if(strtolow($ yzm)=$ _ SESSION[' num ']){//输入正确$ state=0;}else{ //输入错误$ state=2;} }}else{ //没有输入$ state=1;} echo $ state?refresh.php

?PHP session _ start();//生成验证码函数show val(){ $ num=' ';对于($ I=0;$ i4$i ){ $tmp=兰特(1,15);if($ tmp 9){ switch($ tmp){ case(10): $ num .=' a打破;案例(11):美元=' b .打破;案例(12):美元=' c .打破;案例(13):美元=' d .打破;案例(14):美元=' e .打破;案例(15):美元=' f .打破;} } else { $num .=$ tmp} }返回$ num } $ _ SESSION[' num ']=show val();$ _ SESSION[' mdnum ']=MD5(show val());echo $ _ SESSION[' mdnum '];显示的效果如图:

总结:

5个步骤:把四位验证码写入会议再生成图片,客户端图片的参数使用加密的验证码,把输入的字符同会议中的四位验证码进行比对,刷新图片重新生成四位验证码并存入会话,把重新生产的加密验证码作为图片的科学研究委员会参数

用图可表示为:

(未完待续)

版权声明:PHP jQuery注册模块的改进(1):将验证码保存到SESSION中是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。