Rumah >pembangunan bahagian belakang >tutorial php >Prinsip reka bentuk dan amalan sistem blog PHP
Prinsip dan amalan reka bentuk sistem blog PHP
Abstrak: Artikel ini memperkenalkan prinsip dan amalan reka bentuk sistem blog PHP, meliputi fungsi utama seperti reka bentuk pangkalan data, pengesahan pengguna, pengurusan artikel, sistem ulasan, dll., dan juga menyediakan contoh Kod yang berkaitan.
Selain itu, meja tambahan lain boleh direka bentuk mengikut keperluan, seperti jadual klasifikasi, jadual tag, dan lain-lain, untuk menyediakan lebih banyak fungsi.
Berikut ialah contoh reka bentuk pangkalan data yang mudah:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `articles` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `articles_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` text NOT NULL, `user_id` int(11) NOT NULL, `article_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `article_id` (`article_id`), CONSTRAINT `comments_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, CONSTRAINT `comments_article_id_foreign` FOREIGN KEY (`article_id`) REFERENCES `articles` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
// 用户登录 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 验证用户名和密码 if (验证用户名和密码通过) { // 认证通过,保存用户信息到Session $_SESSION['user_id'] = $user_id; // 跳转至博客主页 header('Location: index.php'); exit; } else { // 认证失败,显示错误消息 $error_msg = '用户名或密码错误!'; } } // 用户退出 session_start(); unset($_SESSION['user_id']); session_destroy(); // 跳转至登录页 header('Location: login.php'); exit; // 鉴权检查 session_start(); if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; }
// 发布文章 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 鉴权检查 if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; } // 获取表单数据 $title = $_POST['title']; $content = $_POST['content']; // 保存到数据库 $user_id = $_SESSION['user_id']; $sql = "INSERT INTO articles (title, content, user_id) VALUES ('$title', '$content', $user_id)"; // 执行SQL语句 // 跳转至文章详情页 header('Location: article.php?id=' . $article_id); exit; } // 编辑文章 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 鉴权检查 if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; } // 获取表单数据 $title = $_POST['title']; $content = $_POST['content']; // 更新数据库 $user_id = $_SESSION['user_id']; $sql = "UPDATE articles SET title = '$title', content = '$content' WHERE id = $article_id AND user_id = $user_id"; // 执行SQL语句 // 跳转至文章详情页 header('Location: article.php?id=' . $article_id); exit; } // 删除文章 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 鉴权检查 if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; } // 删除数据库中的文章 $user_id = $_SESSION['user_id']; $sql = "DELETE FROM articles WHERE id = $article_id AND user_id = $user_id"; // 执行SQL语句 // 跳转至博客主页 header('Location: index.php'); exit; }
// 发表评论 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 鉴权检查 if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; } // 获取表单数据 $content = $_POST['content']; // 保存到数据库 $user_id = $_SESSION['user_id']; $sql = "INSERT INTO comments (content, user_id, article_id) VALUES ('$content', $user_id, $article_id)"; // 执行SQL语句 // 刷新页面 header('Location: article.php?id=' . $article_id); exit; } // 删除评论 session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 鉴权检查 if (!isset($_SESSION['user_id'])) { // 未登录,跳转至登录页 header('Location: login.php'); exit; } // 获取评论ID $comment_id = $_POST['comment_id']; // 删除数据库中的评论 $user_id = $_SESSION['user_id']; $sql = "DELETE FROM comments WHERE id = $comment_id AND user_id = $user_id"; // 执行SQL语句 // 刷新页面 header('Location: article.php?id=' . $article_id); exit; }
Atas ialah kandungan terperinci Prinsip reka bentuk dan amalan sistem blog PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!