php产生简单的验证码

来源:互联网 发布:mac安装apache php 编辑:程序博客网 时间:2024/05/17 09:03

必备条件:

php增加了gd库这个扩展。(gd库为php提供了一系列操作图片的方法)。

简要概括:

把用随机函数产生的数字作为验证码的值,把验证码放在服务器端的session中,通过与客户端输入值的比较来判断验证码是否正确。

 

首先,创建验证码:

 

<?php

//要把值赋给session首先要启动该服务组件

session_start();

 

 

//产生随机数字并赋给$nums,期中rand()函数是用来产生0到15的随机数,dechex()的作用是把rand()表示为16进制,这样就能出现a-f中的部分字母

for($i=0;$i<4;$i++){

$nums.=dechex(rand(0,15));

}

//把值赋给创建并把值赋给session

$_SESSION[image]=$nums;

//设置图片的大小尺寸

$img=imagecreatetruecolor(100,30);

//set color,设置背景色

$bg=imagecolorallocate($img,0,0,0);

//font color,设置前景色,既是字体的颜色

$fg=imagecolorallocate($img,255,255,255);

//font loacation,字体相对于图片的位置,以及字体的设置

imagestring($img,rand(1,6),rand(5,60),rand(3, 15),$nums,$fg);

//print the image,输出图片,交给用户端使用

header("Content-type:image/jpeg");

imagejpeg($img);

?>

通过上面的步骤产生了验证码的图片,可是怎么使用呢。

客户端的界面可以简单的是这样的:

 

<?php

session_start();//同样的是启动session组件

if($_POST[numbers]){//如果表单输入的值不为空

if($_SESSION[image]==$_POST[numbers]){//并且上一个php产生的随机数和客户端输入的值一样,打印出验证码正确

echo "验证码正确.";

}

else {

echo "验证码错误.";

}

}

?>

<form action='' method="post">

<img src="make.php" >//引入产生验证码的php文件

<input type="text" name="numbers">

<input type="submit" value="开始验证">

</form>

 

 

 

 

原创粉丝点击