你知道基于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视频教程》
Atas ialah kandungan terperinci 用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!