php简单数字验证码
2017-12-07 20:47
489 查看
<!--identy.html 会调用color.css,captcha.php,form.php--> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link type="text/css" rel="stylesheet" href="color.css"> <title>无标题文档</title> </head> <body> <form method="post" action="./form.php"> <p class="p-top">验证码: <img id="captcha_img" border='1' src='./captcha.php?r=echo rand(); ?>' style="width:100px; height:30px;background-color: whitesmoke" /> <a href="javascript:void(0)" onclick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random()">换一个?</a> </p> <P>请输入验证码:<label><input type="text" name='authcode' value=''/></label></p> <p><input type='submit' value='提交' style='padding:6px 5px;'/></p> </form> </body> </html>
<!--color.css--> #captcha_img{ color: whitesmoke; } .p-top{ margin-top: 50px; }
<!--captcha.php--> <?php //11>设置session,必须处于脚本最顶部 session_start(); /*$image = imagecreatetruecolor(100, 30); //1>设置验证码图片大小的函数 //5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff //6>区域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的区域着色,col 表示欲涂上的颜色 imagefill($image, 0, 0, $bgcolor); //10>设置变量 $captcha_code = "";*/ $image=imagecreatetruecolor(100,30);//创建真彩图像资源 $color=imagecolorAllocate($image,255,255,255);//分配一个灰色 imagefill($image,0,0,$color); //$image = imagecolorallocate($images,125,255,255); //7>生成随机数字 for($i=0;$i<4;$i++){ //设置字体大小 $fontsize = 6; //设置字体颜色,随机颜色 $fontcolor = imagecolorallocate($image, rand(0,255),rand(0,255), rand(0,255)); //0-120深颜色 //设置数字 $fontcontent = rand(0,9); //10>.=连续定义变量 global $captcha_code; $captcha_code .= $fontcontent; //设置坐标 $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //10>存到session global $captcha_code; $_SESSION['authcode'] = $captcha_code; //8>增加干扰元素,设置雪花点 for($i=0;$i<200;$i++){ //设置点的颜色,50-200颜色比数字浅,不干扰阅读 $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200)); //imagesetpixel — 画一个单一像素 imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor); } //9>增加干扰元素,设置横线 for($i=0;$i<4;$i++){ //设置线的颜色 $linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220)); //设置线,两点一线 imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor); } //2>设置头部,image/png header('Content-Type: image/png'); //3>imagepng() 建立png图形函数 imagepng($image); //4>imagedestroy() 结束图形函数 销毁$image imagedestroy($image);
<!--form.php--> <?php header("Content-Type:text/html;charset=utf-8"); //设置头部信息 //isset()检测变量是否设置 if(isset($_REQUEST['authcode'])){ session_start(); //strtolower()小写函数 if(strtolower($_REQUEST['authcode'])== $_SESSION['authcode']){ //跳转页面 echo "<script language=\"javascript\">"; echo "document.location=\"./form.php\""; echo "</script>"; }else{ //提示以及跳转页面 echo "<script language=\"javascript\">"; echo "alert('输入错误!');"; echo "document.location=\"./form.php\""; echo "</script>"; } exit(); }
相关文章推荐
- php一个简单的数字 字母验证码代码
- php写简单的数字和汉字验证码
- PHP写的简单数字验证码实例
- PHP简单验证码类:字母+数字 字体随机扭曲
- php简单发送验证码
- PHP验证码类,简单安全的PHP验证码
- php实现的数字验证码及数字运算验证码
- 转载 支持中文字母数字、自定义字体php验证码程序
- php生成数字字母的验证码图片
- PHP验证码函数代码(简单实用)
- 在Java web中创建简单的5位数字验证码
- PHP生成可点击刷新的验证码简单示例
- PHP实现随机数字、字母的验证码功能
- PHP实现简单汉字验证码
- PHP验证码之数字验证码
- PHP生成制作验证码的简单实例
- PHP 简单的数字过滤函数
- 简单的纯数字图像(如电话号码、数字验证码)识别
- php生成4位数字验证码的实现代码
- php 最简单的验证码