GD库是PHP进行图象操作一个很强大的库。

先在php.ini里增加一行引用:extension=php_gd2.dll

重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。

表单auth.html

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>验证码</title>
</head>
<body>
<h1>请输入验证码</h1>
<form action="check_auth.php" method="post">
   
<input name="auth" type="text">
   
<img src="auth.php" border="0" />
   
<input type="submit" value="提交">
</form>
</body>
</html>

 

生成验证码 auth.php

<?php
   
session_start();
   
header("Content-type:image/png");

   
$img_width=100;
   
$img_height=20;

   
srand(microtime()*100000);
   
for($i=0;$i<4;$i++)
   {
        
$new_number.=dechex(rand(0,15));
   }

   
$_SESSION[check_auth]=$new_number;
   
$new_number=imageCreate($img_width,$img_height);//创建图象
   ImageColorAllocate($new_number,255,255,255);  //设置背景色为白色

   
for($i=0;$i<strlen($_SESSION[check_auth]);$i++)
   {
       
$font=mt_rand(3,5);
       
$x=mt_rand(1,8+ $img_width*$i/4;
       
$y=mt_rand(1,$img_height/4);
       
$color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符颜色
       imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//输出字符
   }

   ImagePng(
$new_number);
   ImageDestroy(
$new_number);
?>

 

提交页面 check_auth.php

<?php
   
session_start();
   
$auth=$_POST['auth'];

   
if(empty($auth))
   {
       
echo '错误:验证码不能为空';
       
die;
   }

   
if($auth==$_SESSION['check_auth'])
   {
       
echo '正确';
   }
   
else
   {
       
echo '错误:验证码输入错误';
   }
?>

 

相关文章:

  • 2021-12-28
  • 2022-12-23
  • 2021-10-03
  • 2022-12-23
  • 2021-11-14
  • 2021-06-14
  • 2022-12-23
  • 2021-11-22
猜你喜欢
  • 2021-07-03
  • 2021-05-17
  • 2022-02-25
  • 2022-01-10
  • 2021-05-21
  • 2021-09-26
  • 2021-06-12
相关资源
相似解决方案