php验证码

昨天写了一个验证码的功能

1.首先生成验证码图片的界面

<?php

session_start();
function random($len) {
    $srcstr = "1a2s3d4f5g6hj8k9qwertyupzxcvbnm";
    mt_srand();
    $strs = "";
    for ($i = 0; $i < $len; $i++) {
        $strs .= $srcstr[mt_rand(0, 30)];
    }
    return $strs;
}

//随机生成的字符串
$str = random(4);

//验证码图片的宽度
$width  = 50;

//验证码图片的高度
$height = 25;

//声明需要创建的图层的图片格式
@ header("Content-Type:image/png");

//创建一个图层
$im = imagecreate($width, $height);

//背景色
$back = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

//模糊点颜色
$pix  = imagecolorallocate($im, 187, 230, 247);

//字体色
$font = imagecolorallocate($im, 41, 163, 238);

//绘模糊作用的点
mt_srand();
for ($i = 0; $i < 1000; $i++) {
    imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pix);
}

//输出字符
imagestring($im, 5, 7, 5, $str, $font);

//输出矩形
imagerectangle($im, 0, 0, $width -1, $height -1, $font);

//输出图片
imagepng($im);

imagedestroy($im);

$str = md5($str);

//选择 cookie
//SetCookie("verification", $str, time() + 7200, "/");

//选择 Session
$_SESSION["verification"] = $str;
生成验证码

2.test5界面显示验证码并且输入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function changing(){
            document.getElementById('checkpic').src="test4.php?"+Math.random();
        }
    </script>
</head>
<body>
<form method="post" action="test1.php">
<img id="checkpic" onclick="changing();" src='test4.php' />
<input type="text" name="code" id="code"/>
    <input type="submit" value="提交"/>
</form>
</body>
</html>
显示验证

 3.验证码跳转阶段

<?php
session_start();


$nam = $_POST['code'];
$nam = md5($nam);
//session_start();
if($_SESSION["verification"]==$nam){
    echo "验证码正确";
}else{
    echo "验证码错误";
    echo $_SESSION["verification"],$nam;
}
验证码验证
原文地址:https://www.cnblogs.com/wfswf/p/14815865.html