PHP验证码(CAPTCHA)是一种用于区分人类和计算机的程序,通常用于网站的安全验证。它通过显示一组扭曲的字符或图像,要求用户输入以证明他们是人类而不是自动化脚本。
以下是一个简单的PHP验证码生成和验证的示例代码:
<?php
session_start();
// 生成验证码
function generateCaptcha() {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = 6;
$captcha = '';
for ($i = 0; $i < $length; $i++) {
$captcha .= $characters[rand(0, strlen($characters) - 1)];
}
$_SESSION['captcha'] = $captcha;
return $captcha;
}
// 验证验证码
function verifyCaptcha($input) {
if (isset($_SESSION['captcha']) && $_SESSION['captcha'] === $input) {
unset($_SESSION['captcha']); // 验证成功后清除验证码
return true;
}
return false;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$inputCaptcha = $_POST['captcha'];
if (verifyCaptcha($inputCaptcha)) {
echo "验证码正确!";
} else {
echo "验证码错误!";
}
} else {
$captcha = generateCaptcha();
?>
<!DOCTYPE html>
<html>
<head>
<title>验证码示例</title>
</head>
<body>
<form method="post">
<label for="captcha">请输入验证码:</label>
<input type="text" id="captcha" name="captcha">
<img src="data:image/png;base64,<?php echo base64_encode(imagecreatefrompng('captcha.png')); ?>" alt="验证码">
<button type="submit">提交</button>
</form>
</body>
</html>
<?php
}
?>
通过以上代码,你可以生成一个简单的图像验证码,并在用户提交表单时进行验证。如果遇到验证码错误的问题,可以检查生成的验证码是否正确,验证码是否存储在会话中,以及用户输入的验证码是否与存储的验证码匹配。
领取专属 10元无门槛券
手把手带您无忧上云