php实现登陆注册
PHP 登录注册实现
数据库准备
创建一个名为 users 的表,包含以下字段:
id:自增主键username:用户名email:邮箱password:密码(需哈希存储)created_at:注册时间
SQL 示例:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
注册功能实现
创建 register.php 文件处理用户注册:
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
// 插入用户数据
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $password);
$stmt->execute();
echo "注册成功";
}
?>
<form method="post">
<input type="text" name="username" placeholder="用户名" required>
<input type="email" name="email" placeholder="邮箱" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">注册</button>
</form>
登录功能实现
创建 login.php 文件处理用户登录:
<?php
session_start();
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows == 1) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: dashboard.php");
exit;
}
}
echo "用户名或密码错误";
}
?>
<form method="post">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
登出功能
创建 logout.php 处理用户登出:
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;
?>
安全注意事项
- 始终使用预处理语句防止 SQL 注入
- 密码必须使用
password_hash()存储 - 验证用户输入数据
- 使用 HTTPS 保护传输数据
- 设置 CSRF 保护令牌
会话管理
登录成功后可在其他页面验证会话:

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
echo "欢迎, " . $_SESSION['username'];
?>






