原生php实现验证码功能
33.php 创建随机验证码的文件
<?php session_start(); header("content-type:image/jpeg"); $str="23456789abcdefghijkmnopqrstuvwxyz"; $code=""; for($i=0;$i<=3;$i++){ $code.=$str[mt_rand(0,strlen($str)-1)]; } $_SESSION['verify']=$code; $image=imagecreate(70,50); imagecolorallocate($image,255,255,255); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即imagecreate()所创建的图片 for($i=0;$i<=3;$i++){ $font=mt_rand(3,5); $x=mt_rand(1,8)+70*$i/4; //获取字符随机x坐标 $y=mt_rand(8,50/4); //获取字符随机y坐标 $color=imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); imagestring($image,$font,$x,$y,$_SESSION['verify'][$i],$color); //imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。 } //绘制干扰点 $pixel=30; $black=imagecolorallocate($image,0,0,0); for($i=0;$i<$pixel;$i++){ imagesetpixel($image,mt_rand(0,69),mt_rand(0,49),$black); //在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点 } imagejpeg($image); imagedestroy($image); |
———————————
34.php 输入验证码文本框
<form method="post" action="check2.php"> <input type="text" name="verify" value="" id="verify"/> <a href="javascript:;"> <img src="33.php" onclick="this.src=this.src+'?'+Math.random()"/> </a> <br/> <br/> <button type="submit">提交验证</button> </form> |
———————————–
check.php 对验证码进行验证的文件
<?php session_start(); $verify=$_SESSION['verify']; $verifytext=$_POST['verify']; if($verify==$verifytext){ echo "验证码输入成功"; } else{ echo "<script>alert('密码输入错误');window.location.href='34.php'</script>"; } |