PHP 注册登录涉及到数据库的操作,以下是相关的基础概念、优势、类型、应用场景以及常见问题的解答。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?><?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
用户名: <input type="text" name="username">
<br><br>
密码: <input type="password" name="password">
<br><br>
<input type="submit">
</form>
</body>
</html><?php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT id, username, password FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row["password"])) {
$_SESSION["loggedin"] = true;
$_SESSION["id"] = $row["id"];
$_SESSION["username"] = $row["username"];
header("location: welcome.php");
} else {
echo "密码错误";
}
} else {
echo "用户名不存在";
}
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
用户名: <input type="text" name="username">
<br><br>
密码: <input type="password" name="password">
<br><br>
<input type="submit">
</form>
</body>
</html>原因:可能是服务器配置错误、用户名或密码错误、数据库不存在等。 解决方法:
原因:未对用户输入进行适当的验证和过滤。 解决方法:
原因:明文存储密码或使用了弱哈希算法。 解决方法:
password_hash() 函数来存储密码的哈希值。password_verify() 函数来验证密码。通过以上步骤,可以实现一个基本的 PHP 注册登录系统,并确保其安全性和可靠性。
没有搜到相关的沙龙