当我们要使用PHP进行图像操作的时候,必然会使用到一个PHP GD库,它是一个很强大的库。今天我们要向大家介绍的就是PHP GD库如何生成验证码的相关方法。
#t#先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache。做一个测试页 var_dump(gd_info());输出数据表明PHP 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>
PHP GD库生成验证码 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);
- ?>
PHP GD库提交页面 check_auth.php
- <?php
- session_start();
- $auth=$_POST['auth'];
- if(empty($auth))
- {
- echo '错误:验证码不能为空';
- die;
- }
- if($auth==$_SESSION['check_auth'])
- {
- echo '正确';
- }
- else
- {
- echo '错误:验证码输入错误';
- }
- ?>
以上就是本文所介绍的PHP GD库生成验证码的相关知识,希望对大家有所帮助。