php实现登陆注册
实现用户注册功能
创建注册表单页面(register.php),包含用户名、密码、邮箱等字段。表单提交方式应为POST:
<form action="register_process.php" method="post">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<input type="email" name="email" placeholder="邮箱" required>
<button type="submit">注册</button>
</form>
处理注册逻辑(register_process.php),验证数据并存入数据库:
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 获取表单数据
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = $_POST['email'];
// 检查用户名是否已存在
$check = $conn->prepare("SELECT id FROM users WHERE username = ?");
$check->bind_param("s", $username);
$check->execute();
$check->store_result();
if($check->num_rows > 0) {
die("用户名已存在");
}
// 插入新用户
$stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $password, $email);
$stmt->execute();
header("Location: login.php");
?>
实现用户登录功能
创建登录表单页面(login.php),包含用户名和密码字段:
<form action="login_process.php" method="post">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
处理登录逻辑(login_process.php),验证用户凭证:
<?php
session_start();
$conn = new mysqli('localhost', 'username', 'password', 'database');
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT id, 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'];
header("Location: dashboard.php");
} else {
die("密码错误");
}
} else {
die("用户不存在");
}
?>
数据库表结构
创建用户表(users)存储注册信息:

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
安全性注意事项
密码必须使用password_hash()函数进行哈希处理,验证时使用password_verify()
所有数据库查询应使用预处理语句防止SQL注入
对用户输入进行过滤和验证,防止XSS攻击

重要操作如修改密码需进行二次验证
会话管理
登录成功后创建会话:
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $username;
检查用户是否登录的验证函数:
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
登出功能:
session_destroy();
header("Location: login.php");






