🗣 Wd提问: PHP源码会员系统
🤖 Ai回答: 在PHP中开发一个会员系统是一个常见的Web应用需求。以下是一个基础的会员系统源码框架,包含用户注册、登录、权限控制、会话管理等功能。该系统使用原生PHP和MySQL数据库,适合初学者学习和扩展。
✅ 功能模块
1、用户注册(含邮箱验证)
2、用户登录/登出
3、会话管理(Session)
4、权限控制(普通用户、管理员)
5、数据库连接(PDO)
6、基础安全措施(密码加密、SQL注入防护)
📁 文件结构
会员系统/
│
├── config/
│ └── db.php // 数据库配置
│
├── includes/
│ ├── db.php // 数据库连接类
│ └── functions.php // 公共函数
│
├── pages/
│ ├── register.php // 注册页面
│ ├── login.php // 登录页面
│ ├── logout.php // 登出页面
│ ├── dashboard.php // 用户主页
│ └── admin.php // 管理员页面
│
├── assets/
│ └── css/style.css // 样式文件
│
└── index.php // 首页
🔧 1、数据库设计(MySQL)
sql
CREATE DATABASE IF NOT EXISTS member_system;
USE member_system;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role ENUM('user', 'admin') DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
is_active BOOLEAN DEFAULT FALSE
);
📂 2、`config/db.php`
php
<?php
$host = 'localhost';
$db = 'member_system';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$dsn = mysql:host=$host;dbname=$db;charset=$charset;
$options = [
PDO::ATTR_ERRMODE = PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE = PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES = false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e-getMessage(), (int)$e-getCode());
}
?
📂 3、`includes/functions.php`
php
<?php
function sanitize($data) {
return htmlspecialchars(strip_tags(trim($data)));
}
function hashPassword($password) {
return password_hash($password, PASSWORD_DEFAULT);
}
function verifyPassword($password, $hash) {
return password_verify($password, $hash);
}
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
function isAdmin() {
return isset($_SESSION['role']) && $_SESSION['role'] === 'admin';
}
function redirect($url) {
header(Location: $url);
exit();
}
?
📂 4、`pages/register.php`
php
<?php
session_start();
require_once '../includes/functions.php';
require_once '../config/db.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = sanitize($_POST['username']);
$email = sanitize($_POST['email']);
$password = $_POST['password'];
$confirm = $_POST['confirm'];
if ($password !== $confirm) {
$error = 密码不一致;
} else {
$stmt = $pdo-prepare(SELECT * FROM users WHERE username = ? OR email = ?);
$stmt-execute([$username, $email]);
if ($stmt-rowCount() 0) {
$error = 用户名或邮箱已存在;
} else {
$hashed = hashPassword($password);
$stmt = $pdo-prepare(INSERT INTO users (username, email, password) VALUES (?, ?, ?));
if ($stmt-execute([$username, $email, $hashed])) {
$_SESSION['message'] = 注册成功,请登录;
redirect('login.php');
} else {
$error = 注册失败,请重试;
}
}
}
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title注册</title
<link rel=stylesheet href=../assets/css/style.css
</head
<body
<div class=container
<h2用户注册</h2
<?php if (isset($error)) echo <p style='color:red;'$error</p; ?
<form method=POST
<input type=text name=username placeholder=用户名 required<br
<input type=email name=email placeholder=邮箱 required<br
<input type=password name=password placeholder=密码 required<br
<input type=password name=confirm placeholder=确认密码 required<br
<button type=submit注册</button
</form
<p已有账号?<a href=login.php立即登录</a</p
</div
</body
</html
📂 5、`pages/login.php`
php
<?php
session_start();
require_once '../includes/functions.php';
require_once '../config/db.php';
if (isLoggedIn()) {
redirect('dashboard.php');
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = sanitize($_POST['username']);
$password = $_POST['password'];
$stmt = $pdo-prepare(SELECT * FROM users WHERE username = ?);
$stmt-execute([$username]);
$user = $stmt-fetch();
if ($user && verifyPassword($password, $user['password'])) {
if (!$user['is_active']) {
$error = 账号未激活,请检查邮箱;
} else {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role'] = $user['role'];
redirect('dashboard.php');
}
} else {
$error = 用户名或密码错误;
}
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title登录</title
<link rel=stylesheet href=../assets/css/style.css
</head
<body
<div class=container
<h2用户登录</h2
<?php if (isset($error)) echo <p style='color:red;'$error</p; ?
<form method=POST
<input type=text name=username placeholder=用户名 required<br
<input type=password name=password placeholder=密码 required<br
<button type=submit登录</button
</form
<p没有账号?<a href=register.php立即注册</a</p
</div
</body
</html
📂 6、`pages/dashboard.php`
php
<?php
session_start();
require_once '../includes/functions.php';
if (!isLoggedIn()) {
redirect('login.php');
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title用户中心</title
<link rel=stylesheet href=../assets/css/style.css
</head
<body
<div class=container
<h2欢迎,<?php echo $_SESSION['username']; ?!</h2
<p角色:<?php echo isAdmin() ? '管理员' : '普通用户'; ?</p
<a href=logout.php退出登录</a
<?php if (isAdmin()): ?
<h3管理员功能</h3
<a href=admin.php管理用户</a
<?php endif; ?
</div
</body
</html
📂 7、`pages/logout.php`
php
<?php
session_start();
session_destroy();
redirect('login.php');
?
📂 8、`pages/admin.php`(管理员页面)
php
<?php
session_start();
require_once '../includes/functions.php';
if (!isLoggedIn() !isAdmin()) {
redirect('login.php');
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title管理员面板</title
<link rel=stylesheet href=../assets/css/style.css
</head
<body
<div class=container
<h2管理员面板</h2
<p欢迎,<?php echo $_SESSION['username']; ?!</p
<a href=dashboard.php返回主页</a
<h3用户列表</h3
<?php
$stmt = $pdo-query(SELECT * FROM users);
while ($row = $stmt-fetch()) {
echo <p{$row['username']} ({$row['email']}) {$row['role']} 、($row['is_active'] ? '已激活' : '未激活') 、</p;
}
?
</div
</body
</html
📣 商家广告:





0
IP地址: 234.106.80.86
搜索次数: 0
提问时间: 2025-11-05 21:29:04
🛒 域名购买:
862.net.cn
7.hk.cn
sbnjt.net
chuisou.com.cn
chxk.cn
8333.top
te.biz
83.gs
xc6.net
yq.gs
❓️ 热门提问:
站群系统开发成本控制策略
迷你电脑小主机
万网 域名
sip录音服务器
机房精密空调十大品牌排行榜
.co域名怎么样
国产web服务器
搬瓦工优惠码2020
境外虚拟空间
新加坡vps云主机性能对比
豌豆Ai站群搜索引擎系统
🌐 域名评估:
vv.ah.cn
uav.hn.cn
toui.cn
jq.gs
zz.sc.cn
vtol.ac.cn
trump.ln.cn
04.gs
emojiall.com
byd.gx.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
검색엔진
站群工具
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。