PHP实现验证码(数字验证码,数字字母混合验证码)

创建PHP环境,检查GD库

<?php

    phpinfo();

?>

一、数字验证码

1.创建底图,实现四个随机数字在图上输出

2.将数字的颜色设为随机

因为0-120颜色较深,在浅色底图上好识别

 

3.增加点线干扰元素

方法 :imagesrtpixel 

方法 :imageline

注意两者的参数是有些许区别的

 

二、数字字母混合验证码

1.

其余地方不变

 

三、通过session保存验证码信息

方法:bool session_start(void)

注意:session_start() 必须处于脚本最顶端;多服务情况需要考虑集中管理session信息。

(这里多服务器情况是指:当用户的验证码请求落在多台服务器之一上,我们的session会保存数据在此台服务器上,但是当做验证请求的时候,会落到另外一个服务器上,但这台服务器是没有我们保存的数据的,那么我们的验证码就会校验失败。所以我们需要考虑集中式管理,需要用到memcache,这个知识点先放在这。)

 

四、创建表单将验证码提交校验

先创建一个提交表单

注意:首先代码要打的完全正确结果才能够不出错,个别字母错误都能导致结果无法显示。

此外大小写处理,全转为小写