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>";
}

发表评论

邮箱地址不会被公开。 必填项已用*标注