使用PHP构建校友管理系统的社区功能
小明: 嗨,小红,最近我在尝试用PHP开发一个校友管理系统,想加入社区功能,但不太知道从哪里开始。
小红: 嗨,小明!校友管理系统听起来很有趣!首先,你需要设计一个数据库来存储所有信息。
小明: 是的,我计划创建几个表,比如用户表、社区帖子表等。
小红: 很好,让我们先来看看用户表。你可以这样定义:
CREATE TABLE users (
id INT(11) 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
);
小明: 明白了,然后是社区帖子表,对吗?
小红: 对的,社区帖子表可以这样设计:
CREATE TABLE posts (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) NOT NULL,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
小明: 看起来很不错。接下来我们需要实现用户注册和登录功能。
小红: 是的,我们可以用PHP来处理这些逻辑。首先,我们来实现用户注册功能。
// 用户注册
function registerUser($username, $password, $email) {
$conn = new mysqli('localhost', 'root', 'password', 'alumni_system');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $hashed_password, $email);
$stmt->execute();
$stmt->close();
$conn->close();
}
小明: 这样就完成了用户注册功能。那用户登录呢?
小红: 登录功能也很简单。我们可以这样做:
// 用户登录验证
function loginUser($username, $password) {
$conn = new mysqli('localhost', 'root', 'password', 'alumni_system');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
return true;
}
}
$stmt->close();
$conn->close();
return false;
}
小明: 太好了,现在我们的系统有了基本的用户管理和社区功能。谢谢你的帮助,小红!
小红: 不客气,希望你的项目顺利!如果还有其他问题,随时联系我。
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!