你知道基於PHP的新聞發布系統該如如何用程式碼書寫出來嗎?想必好多大學生期末考都會讓你們用PHP開發一些系統之類的,還不趕快學起來! ! !
二、 需求分析
1、 軟體功能
新聞發布系統(News Release System or Content Management System)又叫做內容管理系統CMS(Content Management System),是一個基於網路的新聞發布和管理的管理系統,它是基於B/S模式的系統,本系統可以幾乎完成新聞發布的所有功能。隨著網路新聞發布系統的使用,網路充當了一個比電視報紙更重要的新聞媒介的功能。
我們對此系統的設計便是實現這個系統功能的前提。首先是提供一個發布的功能和新聞分類管理。其次,實現使用者互動,使用者可以參加對新聞的評論。最後要實現這個新聞發布的綜合管理,方便管理員的管理。
要實現這個龐大的功能,我們先將使用者權限劃分,不同的使用者有不同的權限。遊客瀏覽者(沒有登陸的)進入到新聞發布系統的主頁面,可以瀏覽所有的相關新聞,查看他人的評論。但是沒有任何特殊的特權。對於已經註冊的瀏覽者(使用者)不僅擁有遊客瀏覽者的全部功能,還可以對某個新聞進行發表評論。最後是管理員,他擁有權限最高,他可以管理所有的新聞,以及新聞分類。可以增加和修改新的新聞分類,也可以增加和修改新的新聞內容。
2、 軟體介面
根據新聞發布系統應具有的基本功能以及參考用戶對新聞發布系統的要求我們將這個新聞發布系統進行功能模組上的劃分,以方便逐一功能的實現。同時用戶在使用上也非常方便,直覺。因此經過我們反覆的分析與設計,我們將這個新聞發布系統分為9大功能模組。詳細的功能模組名稱如下:
(1)新聞分類瀏覽模組
(2)新聞檢索模組
#(3)用戶登陸後發表新聞評論模組
(4)用戶的登陸與註冊模組
(5)管理員後台新聞發佈模組
(6)管理員後台新聞管理模組
(7)管理員後台新聞類別新增模組
(8)管理員後台新聞類別管理模組
#(9)管理員後台評論審核模組
三、 軟體設計
1、 資料庫設計
資料庫設計是CMS系中資料庫設計的核心。資料庫設計直接決定CMS系統的功能流程和運作系統的效率。因此,資料庫的設計則需要深思熟慮。務求做到兼顧新聞發布系統的各項功能。
資料庫設計如下的資料項目:
(1)新聞類別:類別ID、類別名稱。
(2)使用者資訊:使用者ID、使用者名稱、登入密碼。
(3)管理員資訊:管理員ID、使用者名稱、登入密碼、職業。 (只能透過操控資料庫新增管理員)
(4)新聞發布:新聞ID、發布的管理員ID、類別 ID、題目、圖片URL、內容、發佈時間、點擊次數、附件URL。
(5)評論資訊:評論ID、使用者ID、新聞ID、評論內容、評論時間、審核狀態、發佈者IP。
create database news; use news; create table category( category_id int auto_increment primary key, name char(20) not null ); create table users( user_id int auto_increment primary key, name char(20) not null, password char(32) ); create table admin( admin_id int auto_increment primary key, admin char(20) not null, apassword char(20), position char(20) ); create table news( news_id int auto_increment primary key, admin_id int, category_id int, title char(100) not null, picture char(50), content text, publish_time char(30), clicked int, attachment char(100), constraint FK_news_admin foreign key (admin_id) references admin(admin_id), constraint FK_news_category foreign key (category_id) references category(category_id) ); create table review( review_id int auto_increment primary key, user_id int, news_id int, content text, publish_time datetime, state char(10), ip char(15), constraint FK_review_users foreign key (user_id) references users(user_id), constraint FK_review_news foreign key (news_id) references news(news_id) );
2、 軟體設計
新聞發布系統分為前台和後台兩個部分。 對於前台操作者來說,CMS系統的前台頁面是他們可以看見的部分,所以要求前台的操作盡可能直觀方便。 用戶開啟前台的頁面就可輕鬆地瀏覽相關新聞,可以進直接對新聞進行查詢,直接瀏覽所查詢的相關新聞。同時可以針對新聞的不同分類,瀏覽不同類型的新聞。註冊用戶可以透過登陸介面登陸。用戶成功登陸後,將有評論權限,當用戶瀏覽一些新聞以後需要對新聞進行評論時,只要進入新聞相應的評論版中添加自己要評論的內容,即可成功添加。同時返回可以繼續瀏覽其他人的評論。
對於後台管理,管理員不僅擁有操作前台所有功能的權限,還可以進行網站的全面管理。具體來說,在新聞管理中,管理員可以設定和添加沒有的新聞分類,以便在前台的網頁中顯示新聞的分類,同時也可以對已有的新聞分類進行修改,同時管理員可以增加和刪除新聞。保證網站的動態性。其次,管理員就是對新聞的文章進行綜合管理,例如評論的審核等。
四、 軟體實作
(1)新聞分類瀏覽模組
瀏覽新聞是所有使用者都具有的最基本的權限,為了方便使用者對新聞的快捷瀏覽,我們設計了新聞的分類瀏覽功能。用戶只要進入新聞發布系統的主頁,要想瀏覽哪一類新聞,只需在首頁中的新聞分類的名稱上點擊,即可彈出要瀏覽的這一類新聞的所有新聞。並且按照新聞發布的時間的先後順序來排列所有新聞。在打開的這一類新聞的新聞列表中,用戶只需在點擊相應的要看的新聞標題,即可快速的瀏覽此新聞的詳細內容。包括新聞的標題,新聞的詳細內容,新聞的來源,新聞的發佈時間以及點擊次數等。因此,為那些喜歡關注哪一類新聞的用戶提供了便利。同時,此新聞發布系統也增加了兩個新聞瀏覽的模組。一個是根據新聞的點擊次數給用戶列出關注度最高的新聞。即點擊次數最高的幾則新聞。 另一個是根據管理員所發布新聞的時間來為使用者列出最新的新聞。
因此,透過這個3區塊新聞瀏覽的功能模組可以滿足不同使用者的不同需求。
核心程式碼:
<section> <p id="yule" class="heading">娱乐</p> <p class="content"> <ul class="list"> <?php $sql= "select * from news where category_id=1"; $newsRes = mysql_query($sql); while($news = mysql_fetch_array($newsRes)){ echo"<li><a href='content.php?news_id=".$news[0]."'>$news[3]</a></li>"; } ?> </ul> </p> </section>
(2)新聞檢索模組
為了方便使用者快速的瀏覽想要瀏覽的新聞,我們為此新聞發布系統設計一個新聞的檢索功能。新聞檢索就是使用者只要在此新聞發布系統的主頁中找到新聞檢索的輸入框,然後在此查詢輸入框中輸入要查詢新聞的關鍵字,然後提交到資料庫中。資料庫正在進行資料的匹配,然後傳回給使用者要查詢的新聞內容。這種檢索方式比較方便,只要新聞包含了使用者輸入的關鍵字,那麼所符合的新聞就會清單顯示出來。因此,用戶就可以直觀地瀏覽要瀏覽的新聞,為用戶節省時間,避免不必要的瀏覽操作。
核心程式碼:
$sql="select * from news where title like '%{$find}%' order by news_id limit {$num} , $fnum"; //echo $sql; $result=mysql_query($sql); while($row=mysql_fetch_array($result)) { $sqls="select name from category where category_id={$row['category_id']}"; $selected=mysql_query($sqls); $a=mysql_result($selected,0); $b=$row['news_id']; echo "<tr>"; echo "<td style='color:white;'>{$a}</td>"; echo "<td style='color:white;'><a href=content.php?news_id=$b style='color:white;'>{$row['title']}</td>"; echo "</tr>"; }
(3)用戶登陸後發表新聞評論模組
對用戶可以登錄,登入以後可以繼續瀏覽相應的新聞,不同的是登錄後的用戶比普通的遊客用戶權限更高。登入後的用戶可以在瀏覽新聞內容的時候對新聞進行發表自己的新聞評論。在評論版中使用者可以互相交流。形成一個互動的平台。
核心程式碼:
<?php header("Content-type:text/html;charset=utf-8"); $server=@mysql_connect("localhost", "root", "")or die("数据库连接失败!"); mysql_query("SET NAMES 'UTF8'"); $dblink=@mysql_select_db("news") or die("选择当前数据库失败!"); $newsid=$_GET['news_id']; //echo '<script>alert('.$newsid.');</script>'; $sql="select * from news where news_id =".$newsid; $rs=mysql_query($sql); while($rows=mysql_fetch_array($rs)){ $title = $rows['title']; $content = $rows['content']; $picture = $rows['picture']; } $sql="select * from review where state='已审核' and news_id =".$newsid; $rs=mysql_query($sql); @$userid=$_SESSION['user_id']; ?>
(4)使用者的登陸與註冊模組
限制使用者的權限,用戶登入的模組是必不可少的。在正常帳戶和密碼都正確的情況下可以正常登錄,普通用戶選擇用戶登陸,而管理員選擇管理員登陸。同時可以註冊為用戶。
核心代码:
<p class="box_lg"> <p class="box_tit"> <a href="" class="close">x</a> <H3>登录账号</H3> </p> <p class="box_con"> <form action="login.php" method="post"> <p> <select name="usertype"> <option value="普通用户">普通用户</option> <option value="管理员">管理员</option> </select> </p> <p> 用户名:<input type="text" name="name" size="11"/><br/> </p> <p> 密 码 :<input type="password" name="password" size="11"/><br/> </p> <p class="log"> <input type="submit" name="login" value="登录"> </p> <span> <a href="#" id="ljzc">立即注册</a> </span> </form> </p> </p> <p class="box_zc"> <p class="box_tit"> <a href="" class="close">x</a> <H3>注册账号</H3> </p> <p class="box_con"> <form action="adduser.php" method="post"> <p> 用户名:<input type="text" name="name" size="11"/><br/> </p> <p> 密 码 :<input type="password" name="password" size="11"/><br/> </p> <p> 确认密码:<input type="password" name="repassword" size="11"/><br/> </p> <p class="zc"> <input type="submit" name="zhuce" value="注册"> </p> <span> <a href="#" id="ljdl">立即登录</a> </span> </form> </p> </p>
(5)管理员后台新闻发布模块
新闻发布模块对于新闻发布系统来说是最主要的一个模块。本系统的新闻发布系统模块中发布的信息包括了新闻作者,新闻标题,新闻图片,新闻内容,新闻来源,新闻发布的时间以及用户点击次数等。管理员用户可以通过后台的新闻发布页面填写相关的内容,然后点击发布新闻,即可将自己的新闻发布出去。新闻发布的过程简单易行,新闻由管理员在后台直接发布,无需验证和批准直接可以在新闻发布系统的主页面上显示最新的新闻内容。
核心代码:
<?php include_once("functions/database.php"); get_connection(); $result_set = mysql_query("select * from category"); close_connection(); while($row = mysql_fetch_array($result_set)){ ?> <option value="<?php echo $row['category_id'];?>"><?php echo $row['name'];?></option> <?php } ?>
(6)管理员后台新闻管理模块
管理员将新闻发布以后,难免有出错或者需要修改的时候。因此在设计后台的时候针对此需要,我们设计了管理员后台新闻管理模块。管理模块是对已经发布出去的新闻进行修改编辑或者删除。同时也是新闻发布系统管理新闻的最基本的功能。 此权限也只能是管理员才可以对此进行操作,对于游客身份的用户和已经登录的会员用户则均不可以对此进行操作。
核心代码:
<?php include_once("functions/database.php"); $news_id = $_GET["news_id"]; get_connection(); $result_news = mysql_query("select * from news where news_id=$news_id"); $result_category = mysql_query("select * from category"); close_connection(); $news = mysql_fetch_array($result_news); ?>
(7)管理员后台新闻类别添加模块
为了满足用户对新闻的分类浏览,我们设计了新闻的分类浏览功能。因此,在后台的管理中我们首先要建立管理员后台新闻类别添加的模块。管理员要发布的新闻是有一定的分类的。首先管理员要添加自己所要发布新闻的新闻分类,以便在以后发布新闻的时候可以根据已经添加的新闻分类,自然地将需要发布的新闻进行分类。同时网页中的新闻分类里也显示已发布的新闻。这样用户在针对哪一类的新闻进行浏览时,可以在第一时间看到最新的新闻。 如果网站需要宽展发布一些新类型的新闻,就可以动态的控制不同种类的新闻,可以做到新闻种类无限扩展。因此,此模块可以大大的增加动态网站的动态性,避免过的冗余操作。为管理员减少工作量,方便维护整个庞大的网站。
核心代码:
<?php include_once("functions/database.php"); $category = $_POST["category"]; //$content = htmlspecialchars(addslashes($_POST["content"])); $sql = "insert into category values(null,'$category')"; get_connection(); mysql_query($sql); close_connection(); echo "该类别成功添加到数据库表中!"; ?>
(8)管理员后台新闻类别管理模块
为了满足用户对新闻的分类浏览,我们设计了无限新闻类型添加的功能。与此同时,新闻的分类管理也是必不可少的一项模块。我们针对已经添加过的新闻进行修改或者直接删除,保证管理员可以对新闻分类进行任意操作。动态的控制整个新闻发布系统的新闻分类功能。同时也满足了不同用户对不同类型的新闻浏览的要求。使得这个新闻发布系统更有实用性,更人性化的管理。
核心代码:
<?php include_once("functions/database.php"); $category_id = $_POST["category_id"]; $name = $_POST["category_name"]; $sql = "update category set name='$name' where category_id=$category_id"; get_connection(); mysql_query($sql); close_connection(); echo "新闻类别修改成功!"; ?>
(9)管理员后台评论审核模块
使管理员审核评论,防止存在非法或者违规的评论存在。
核心代码:
<?php include_once("functions/database.php"); $review_id = $_GET["review_id"]; $sql = "update review set state='已审核' where review_id=$review_id"; get_connection(); mysql_query($sql); close_connection(); header("Location:review_list.php"); ?>
推荐学习:《PHP视频教程》
以上是用PHP製作新聞管理系統,動腦! ! ! (含前台後台)的詳細內容。更多資訊請關注PHP中文網其他相關文章!