PHP 后台管理员系统的登录代码,创建登录验证页面包含验证码功能,其中已将用户名和密码存储在数据库中
时间: 2023-06-23 15:09:32 浏览: 150
以下是一个简单的 PHP 后台管理员系统的登录代码,包含验证码功能:
```php
<?php
session_start();
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$captcha = $_POST['captcha'];
// 检查验证码是否正确
if($captcha != $_SESSION['captcha']){
$error = "验证码不正确";
}else{
// 检查用户名和密码是否匹配
$conn = mysqli_connect("localhost","root","password","myDB");
$sql = "SELECT * FROM admin WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn,$sql);
$count = mysqli_num_rows($result);
if($count == 1){
// 登录成功,跳转到管理页面
header("Location: admin.php");
exit();
}else{
$error = "用户名或密码不正确";
}
mysqli_close($conn);
}
}
// 生成验证码
$captcha = rand(1000,9999);
$_SESSION['captcha'] = $captcha;
?>
<!DOCTYPE html>
<html>
<head>
<title>后台管理员登录</title>
</head>
<body>
<h2>后台管理员登录</h2>
<?php if(isset($error)){ ?>
<p><?php echo $error; ?></p>
<?php } ?>
<form method="post" action="">
<p>
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required>
</p>
<p>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required>
</p>
<p>
<label for="captcha">验证码:</label>
<input type="text" name="captcha" id="captcha" required>
<img src="captcha.php">
</p>
<p>
<input type="submit" name="submit" value="登录">
</p>
</form>
</body>
</html>
```
这里使用了 `session_start()` 函数来启动一个会话,用于存储验证码和其他信息。当用户提交表单时,先检查验证码是否正确,如果正确则从数据库中检查用户名和密码是否匹配,如果匹配则跳转到管理页面。否则显示错误信息。
验证码的生成和验证可以使用一个单独的 PHP 文件,例如 `captcha.php`:
```php
<?php
session_start();
header('Content-type: image/jpeg');
$captcha = $_SESSION['captcha'];
$image = imagecreate(60, 30);
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 5, 10, 8, $captcha, $text_color);
imagejpeg($image);
imagedestroy($image);
?>
```
这个文件生成一个随机的四位验证码,存储在会话中,并将其显示为一个 JPEG 图像。在登录页面中使用 `<img src="captcha.php">` 来显示验证码。
阅读全文