PHP を使用してニュース管理システムを作成し、頭を使って学習してください。 ! ! (フロントオフィス、バックオフィス含む)
PHP に基づいたニュース リリース システムをコードで記述する方法をご存知ですか?おそらく多くの大学生が最終試験で PHP を使用してシステムを開発するよう求められるので、急いで学習してください。 ! !
要件分析
1.ソフトウェア機能
#ニュース リリース システム(ニュース リリース システムまたはコンテンツ管理システム) は、コンテンツ管理システム CMS (コンテンツ マネジメント システム) とも呼ばれます。 は、ネットワーク ベースのニュース リリースであり、経営管理システムはB/Sモードをベースとしたシステムであり、ニュースリリースのほぼすべての機能をこのシステムで完結できます。オンラインニュースリリースシステムの利用により、インターネットはテレビ新聞よりも重要なニュースメディアとして機能します。
このシステムの設計は、このシステムの機能を実現するための前提条件です。 1つ目は、パブリッシング機能とニュース分類管理の提供です。第 2 に、ユーザー インタラクションを実現します。ユーザーはニュースのコメントに参加できます。最後に、管理者の管理を容易にするために、このニュース リリースの包括的な管理を実現する必要があります。 この巨大な機能を実現するには、まずユーザーの権限を分割します。ユーザーごとに異なる権限を持ちます。訪問者 (ログインしていない人) は、ニュース リリース システムのメイン ページに入り、すべての関連ニュースを閲覧したり、他の人のコメントを閲覧したりできます。しかし、特別な特典はありません。登録された視聴者(ユーザー)は、ゲスト視聴者のすべての機能を利用できるだけでなく、特定のニュースに対してコメントすることもできます。最後に、最高の権限を持ち、すべてのニュースとニュース カテゴリを管理できる管理者がいます。新しいニュース カテゴリを追加および変更でき、新しいニュース コンテンツも追加および変更できます。
2,
ソフトウェアインターフェースニュースリリースシステムが持つべき基本機能とニュースリリースシステムに対するユーザーの要求に応じて、機能を実装します。このニュースリリースシステム部門のモジュールを活用し、各機能の実装を容易にします。同時に、ユーザーにとっては非常に便利で直感的に使用できます。そこで、分析と設計を繰り返した結果、このニュースリリースシステムを9つの機能モジュールに分割しました。詳細な機能モジュール名は以下のとおりです。
(1) ニュース分類閲覧モジュール
(2) ニュース検索モジュール
(3) ユーザーログイン後にニュースコメントを投稿するモジュール (4) ユーザーログインと登録モジュール
(5) 管理者の背景ニュースリリース用モジュール
(6) 管理者バックエンドニュース管理モジュール
(7) 管理者バックエンドニュースカテゴリ追加モジュール
(8) 管理者バックエンドニュースカテゴリ管理モジュール
(9) 管理者バックエンド コメント レビュー モジュール3.
ソフトウェア設計1.
データベース設計#データベース設計は、
CMS部門におけるデータベース設計の中核です。データベース設計は、CMS システムの機能プロセスとオペレーティング システムの効率を直接決定します。したがって、データベースの設計には慎重な検討が必要です。ニュースリリースシステムのすべての機能を必ず考慮してください。データベースは次のデータ項目で設計されています:
(1) ニュース カテゴリ: カテゴリ
ID、カテゴリ名。(
2) ユーザー情報:UserID、ユーザー名、ログインパスワード。 (3) 管理者情報:Administrator
ID、ユーザー名、ログインパスワード、職業。 (管理者はデータベースの操作によってのみ追加できます)(4) ニュースリリース: ニュース
ID、公開管理者ID、category ID 、タイトル、imageURL、コンテンツ、リリース時間、クリック数、attachmentURL。
(5) コメント情報: commentID、userID、newsID、コメント内容、コメント時刻、 レビューステータス、発行者 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. ソフトウェア設計
ニュース リリース システムは、フロント デスクとバック デスクの 2 つの部分に分かれています。 フロントエンドオペレーターにとって、CMS システムのフロントエンドページは目に見える部分であるため、フロントエンドの操作はできるだけ直感的で便利であることが求められます。 ユーザーはトップページを開いて簡単に##関連ニュースを閲覧でき、ニュースを直接検索したり、関連ニュースを直接閲覧したりできます。同時に、ニュースのさまざまなカテゴリに応じて、さまざまな種類のニュースを閲覧できます。登録ユーザーは、ログイン インターフェイスからログインできます。ユーザーが正常にログインすると、コメントする権利が与えられます。ユーザーがニュースを閲覧した後、ニュースにコメントする必要がある場合、ニュースの対応するコメント セクションに入力して、コメントしたい内容を追加するだけです。をクリックすると、正常に追加できます。同時に、戻って他の人のコメントの閲覧を続けます。
バックエンド管理では、管理者はフロントエンドの全機能を操作する権限を有するだけでなく、Webサイトの総合的な管理も行うことができます。具体的には、ニュース管理において、管理者は、トップページにニュースカテゴリを表示できるように新しいニュースカテゴリを設定・追加することができるほか、既存のニュースカテゴリを変更すると同時に、管理者がニュースカテゴリを追加することもできます。そしてニュースを削除します。ウェブサイトのダイナミクスを確保します。次に、管理者はコメントのレビューなどニュース記事の総合的な管理を担当します。 IV.ソフトウェア実装
(1)ニュース分類閲覧モジュール
ニュースの閲覧はすべてのユーザーが対象です最も基本的な権限を使用して、ユーザーがニュースをすばやく閲覧できるように、ニュースの分類された閲覧機能を設計しました。ユーザーがニュース リリース システムのホームページに入り、どの種類のニュースを閲覧したい場合は、ホームページ上のニュース カテゴリの名前をクリックするだけで、必要な種類のニュースをすべてポップアップ表示できます。閲覧するために。そして、すべてのニュースをニュースリリース時刻順に並べます。この種のニュースは、開いたニュース一覧で、対応するニュースのタイトルをクリックするだけで、そのニュースの詳細な内容を素早く閲覧できます。ニュースのタイトル、ニュースの詳細内容、ニュースの出所、ニュースの公開時間、クリック数など。したがって、どのような種類のニュースに注目したいユーザーにとっても便利です。同時に、このニュース リリース システムには 2 つのニュース閲覧モジュールも追加されます。 1 つは、ニュースのクリック数に基づいてユーザーに最も人気のあるニュースをリストすることです。つまり、クリック数が最も多かったニュースです。 もう 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>
ニュース取得モジュール
ユーザーの閲覧を容易にするためニュースを素早く閲覧するために、このニュースリリースシステムにニュース検索機能を設計します。ニュース検索とは、ユーザーがニュースリリースシステムのホームページ上でニュース検索入力ボックスを見つけ、そのクエリ入力ボックスにニュースを検索するためのキーワードを入力し、データベースに送信するだけです。データベースはデータを照合し、ユーザーがクエリしたいニュース コンテンツを返します。こちらの検索方法の方が便利で、ユーザーが入力したキーワードが含まれるニュースであれば、該当するニュースが一覧で表示されます。そのため、ユーザーは閲覧したいニュースを直感的に閲覧することができ、無駄な閲覧操作を省き、時間を節約することができます。コア コード:
$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>"; }
ユーザーのログイン後にニュース コメント モジュールを投稿
ログイン後は引き続き該当ニュースの閲覧が可能ですが、ログインしたユーザーは通常のゲストユーザーよりも高い権限を持っている点が異なります。ログインユーザーは、ニュースコンテンツを閲覧しながら、ニュースに独自のニュースコメントを投稿できます。コメントボードではユーザー同士がコミュニケーションをとることができます。インタラクティブなプラットフォームを形成します。コア コード:
<?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']; ?>
ユーザー ログインおよび登録モジュール
ユーザー権限を制限します。ユーザーログインモジュールは必須です。アカウントとパスワードが正しければ通常通りログインできますが、一般ユーザーはユーザーログイン、管理者は管理者ログインを選択します。ユーザー登録も可能です。核心代码:
<p class="box_lg"> <p class="box_tit"> <a href="" class="close">x</a> <h3 id="登录账号">登录账号</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 id="注册账号">注册账号</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 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
