php验证码登录
时间: 2023-07-05 18:23:17 浏览: 61
实现 PHP 验证码登录的基本步骤如下:
1. 生成验证码:使用 PHP 的 GD 库或者其他验证码库生成随机的验证码图片,并将验证码字符串保存到 session 中。
2. 显示验证码:将生成的验证码图片输出到前端页面,让用户输入验证码。
3. 验证用户输入:获取用户输入的验证码字符串,并与 session 中保存的验证码字符串进行比对,判断用户输入的验证码是否正确。
4. 验证用户名和密码:如果验证码输入正确,则继续验证登录用户名和密码是否正确,如果用户名和密码都正确,则登录成功,否则提示错误信息。
下面是一个简单的 PHP 验证码登录示例代码:
```
<?php
session_start();
// 生成随机验证码字符串
$code = "";
for ($i = 0; $i < 4; $i++) {
$code .= chr(rand(97, 122));
}
// 保存验证码字符串到 session
$_SESSION["code"] = $code;
// 生成验证码图片
$width = 80;
$height = 40;
$image = imagecreate($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 5, 20, 10, $code, $text_color);
header("Content-type: image/png");
imagepng($image);
// 销毁图片资源
imagedestroy($image);
// 验证用户输入
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取用户输入的验证码
$input_code = $_POST["code"];
// 获取用户输入的用户名和密码
$username = $_POST["username"];
$password = $_POST["password"];
// 判断验证码是否正确
if (strtolower($input_code) != strtolower($_SESSION["code"])) {
echo "验证码输入错误!";
} else {
// 验证用户名和密码是否正确
if ($username == "admin" && $password == "123456") {
echo "登录成功!";
} else {
echo "用户名或密码错误!";
}
}
}
?>
<form method="post">
<p>用户名:<input type="text" name="username"></p>
<p>密码:<input type="password" name="password"></p>
<p>验证码:<input type="text" name="code" style="width: 80px;"><img src="<?php echo $_SERVER['PHP_SELF']; ?>" alt="验证码"></p>
<p><input type="submit" value="登录"></p>
</form>
```