php生成验证码与验证码验证完整实例
html页面,代码如下
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>PHP验证码实例</title>
- <script language="javascript">
- function refresh_code()
- {
- form1.imgcode.src="verifycode.php?a="+Math.random();
- }
- </script>
- </head>
- <body>
- <form id="form1" name="form1" method="post" action="checkcode.php">
- <label for="code">验证码:</label>
- <input type="text" name="code" id="textfield" />
- <img id="imgcode" src="VerifyCode.php" alt="验证码" />
- <a href="javascript:refresh_code()">看不清?换一个</a>
- <input type="submit" name="button" id="button" value="提交" />
- </form>
- </body>
- </html>
verifycode.php文件代码如下:
- <?php
-
-
-
- session_start();
- $num=4;
- $width=80;
- $height=20;
- $code=' ';
- for($i=0;$i<$num;$i++)
- {
- switch(rand(0,2))
- {
- case 0:$code[$i]=chr(rand(48,57));break;
- case 1:$code[$i]=chr(rand(65,90));break;
- case 2:$code[$i]=chr(rand(97,122));break;
- }
- }
- $_SESSION["VerifyCode"]=$code;
- $image=imagecreate($width,$height);
- imagecolorallocate($image,255,255,255);
- for($i=0;$i<80;$i++)
- {
- $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
- imagesetpixel($image,rand(1,$width),rand(1,$height),$dis_color);
- }
- for($i=0;$i<$num;$i++)
- {
- $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
- imagechar($image,60,($width/$num)*$i,rand(0,5),$code[$i],$char_color);
- }
- header("Content-type:image/png");
- imagepng($image);
- imagedestroy($image);
- ?>
checkcode.php文件如下:
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <?php
- ini_set('display_errors', 'Off');
- session_start();
- if((strtoupper($_POST["code"])) == strtoupper(($_SESSION["VerifyCode"]))){
- print("验证码正确,");
- }else{
- print("验证码错误,");
- }
- echo "提交的验证码:".strtoupper($_POST["code"]).",正确的验证码:".strtoupper($_SESSION["VerifyCode"]);
- ?>
|