在Linux上使用PHP实现用户认证,通常涉及以下几个步骤:
创建数据库和用户表: 使用MySQL或其他数据库系统来存储用户信息。
CREATE DATABASE user_auth;
USE user_auth;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
配置数据库连接: 在PHP中配置数据库连接。
<?php
$servername = "localhost";
$username = "your_db_username";
$password = "your_db_password";
$dbname = "user_auth";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
注册功能: 创建一个注册表单,并处理用户提交的注册信息。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $username, $password);
if ($stmt->execute()) {
echo "新用户注册成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$stmt->close();
}
?>
<form action="register.php" method="post">
用户名: <input type="text" name="username"><br>
密码: <input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
登录功能: 创建一个登录表单,并处理用户提交的登录信息。
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT id, username, password FROM users WHERE username = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($user = $result->fetch_assoc()) {
if (password_verify($password, $user['password'])) {
$_SESSION['loggedin'] = true;
$_SESSION['id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: welcome.php");
exit;
} else {
echo "密码错误";
}
} else {
echo "用户不存在";
}
$stmt->close();
}
?>
<form action="login.php" method="post">
用户名: <input type="text" name="username"><br>
密码: <input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
欢迎页面: 创建一个欢迎页面,显示已登录用户的信息。
<?php
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header("Location: login.php");
exit;
}
$username = $_SESSION['username'];
$id = $_SESSION['id'];
?>
<h1>欢迎, <?php echo htmlspecialchars($username); ?>!</h1>
<p>用户ID: <?php echo htmlspecialchars($id); ?></p>
<a href="logout.php">登出</a>
登出功能: 创建一个登出脚本,清除会话信息。
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;
通过以上步骤,你可以在Linux上使用PHP实现一个基本的用户认证系统。请确保在生产环境中使用HTTPS来保护用户的敏感信息。