pyaephyoaung78/shwee-shaung-news

GitHub: pyaephyoaung78/shwee-shaung-news

一个使用 PHP 和 MySQL 构建的新闻发布与内容管理系统,提供多角色后台管理、新闻投稿、搜索分页和基本安全防护功能。

Stars: 0 | Forks: 0

# Shwee Shaung News Shwee Shaung News 是一个使用 PHP 和 MySQL 构建的新闻网站,它是作为一个大学 PHP 课程项目开发的。 ## 功能 - 用户注册和登录 - 带角色的管理员登录 - 新闻分类和子分类 - 新闻详情页 - 实时搜索和分页搜索结果 - 分页显示的最新新闻和分类新闻 - 用户新闻投稿 - 用户订阅 - 反馈表单 - 广告管理 - 表单的 CSRF token 保护 - 基础的上传文件夹 Git 规范 ## 技术栈 - PHP - MySQL - Bootstrap - JavaScript / jQuery - 用于后台区域富文本编辑的 TinyMCE ## 项目结构 ``` admin/ Admin dashboard and admin actions admin/images/ Runtime news uploads, ignored by Git admin/adsimages/ Runtime advertisement uploads, ignored by Git bootstrap-5.3.2-dist/ Local Bootstrap assets config/ Database connection and shared helpers database/ Database migration/helper files img/ Static website/team assets css/ Extra CSS ``` ## GitHub 上传说明 运行时的上传文件夹被有意忽略: ``` admin/images/* admin/adsimages/* ``` 这些文件夹通过 `.gitkeep` 文件保留,以便在克隆后项目结构依然存在。 ## 设置 1. 将仓库克隆到你的 Apache web 根目录: ``` git clone shwee_shaung_news ``` 2. 创建一个 MySQL 数据库: ``` CREATE DATABASE shwee_shaung_news CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 3. 导入 schema: ``` mysql -u root -p shwee_shaung_news < database/schema.sql ``` 4. 可选:导入干净的演示数据: ``` mysql -u root -p shwee_shaung_news < database/demo_data.sql ``` 演示凭据: ``` Admin: role: admin password: admin123 Editor: role: editor password: editor123 Reporter: role: reporter password: reporter123 User: email: demo@example.com password: password123 ``` 5. 如果你正在升级一个尚未包含新版 `news_images` 表的旧课程数据库,请运行: ``` mysql -u root -p shwee_shaung_news < database/create_news_images.sql php database/migrate_news_images.php ``` 6. 配置数据库凭据。 ``` DB_HOST DB_USER DB_PASSWORD DB_NAME ``` 对于本地开发,你也可以编辑 [config/database.php](config/database.php)。 示例值展示在 [config/database.example.php](config/database.example.php) 中。 7. 在浏览器中打开该项目: ``` http://localhost/shwee_shaung_news/Home.php ``` ## 演示 URL ``` Public home: http://localhost/shwee_shaung_news/Home.php User login: http://localhost/shwee_shaung_news/Login.php Admin login: http://localhost/shwee_shaung_news/admin/admin_login.php Search results: http://localhost/shwee_shaung_news/SearchResults.php?keyword=news ``` ## 已添加的安全改进 - CSRF token 助手和验证 - 删除操作从 GET 链接转换为 POST 表单 - 用户注册存储哈希密码 - 管理员/用户登录支持哈希密码 - 搜索使用 prepared statements - 上传文件夹被 Git 忽略 - 管理员密码对员工表隐藏 ## 推荐的后续改进 - 使用 MIME 类型和文件大小检查来改进上传验证 - 将剩余的原生 SQL 字符串替换为 prepared statements - 添加编辑/删除确认弹窗 - 添加密码重置功能 - 为每个后台页面添加更好的基于角色的授权 - 在此 README 中添加截图 ## 团队 由 Shwee Shaung News 团队作为一个大学 PHP 课程项目构建。
标签:Bootstrap, OpenVAS, PHP, RBAC权限管理, Syscall, Web开发, 内容管理系统, 数据可视化, 新闻发布系统, 自定义脚本