以下是一个简单的PHP和MySQL实现的登录页面代码示例:
HTML部分(login.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="login.php" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
PHP部分(login.php):
<?php
$servername = "localhost";
$username = "your_username"; // 数据库用户名
$password = "your_password"; // 数据库密码
$dbname = "your_database"; // 数据库名称
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 预处理及绑定
$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->bind_param("ss", $username, $password);
// 设置参数并执行
$username = $_POST['username'];
$password = $_POST['password']; // 注意:这里应进行密码加密处理,例如使用password_hash()
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();
if ($user) {
echo "登录成功";
} else {
echo "用户名或密码错误";
}
$stmt->close();
$conn->close();
?>
基础概念:
优势:
类型:
应用场景:
常见问题及解决方法:
password_hash()
函数进行加密存储,并使用password_verify()
函数进行验证。示例代码中已经使用了预处理语句来防止SQL注入,但在实际应用中,密码不应以明文形式存储和比较,而应使用哈希算法进行加密存储和验证。
领取专属 10元无门槛券
手把手带您无忧上云