在 PHP 中实现验证码判断通常需要以下步骤:
生成验证码:可以使用 PHP 的 GD 库或者其他库来生成验证码图片,包括随机生成验证码字符串、设置字体颜色、背景颜色、干扰线等效果。
将验证码字符串保存到 session 中:在生成验证码图片的同时,将验证码字符串保存到 session 中。
用户输入验证码:在用户提交表单时,要求用户输入验证码。
验证用户输入的验证码:获取用户输入的验证码字符串,与 session 中保存的验证码字符串进行比对,判断是否一致。
以下是一个简单的验证码实现示例:
<?phpsession_start();// 生成验证码$code = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 5);$_SESSION['captcha'] = $code;// 创建一个 100x30 的验证码图片$image = imagecreatetruecolor(100, 30);// 设置背景颜色$bg_color = imagecolorallocate($image, 255, 255, 255);imagefill($image, 0, 0, $bg_color);// 设置验证码字符串的颜色$text_color = imagecolorallocate($image, 0, 0, 0);// 在图片上写入验证码字符串imagestring($image, 5, 10, 5, $code, $text_color);// 输出验证码图片header('Content-type: image/png');imagepng($image);imagedestroy($image);?><form method="post" action="verify.php"> <input type="text" name="captcha"> <img src="https://www.mykuaidi.com/static/image/lazy.gif" class="lazy" original="https://www.mykuaidi.com/static/image/nopic320.png" alt="captcha"> <input type="submit" value="Submit"></form>在 verify.php 中验证用户输入的验证码:
<?phpsession_start();if ($_SERVER['REQUEST_METHOD'] == 'POST') { $captcha = $_POST['captcha']; if (isset($_SESSION['captcha']) && $_SESSION['captcha'] == $captcha) { echo '验证码正确'; } else { echo '验证码错误'; }}?>在这个示例中,我们通过 session 保存验证码字符串,用户输入验证码后与 session 中保存的验证码字符串进行比对,从而实现验证码的判断。




