后台管理功能分析
admin.php 用于留言板系统的后台管理,其逻辑基本与 index.php 相同,分页输出各条留言,只是增加了:
- 登录检测:在此页面开始部分增加管理用户登录判断,如果是未登录而直接访问该页面,则重定向至登录页面login.php
- 回复、删除等管理功能:每条回复提供一个回复表单及一个删除链接
在 reply.php 文件中处理 admin.php 表单提交过来的留言回复及对留言的删除。另外 reply.php 也要做用户登录判断,以防止非法操作。
后台管理主页面 admin.php
登录检测
在需要权限才能操作的界面都应该先进行用户登录检测,复杂的情况下还要进行权限检测。本留言板例子需要进行登录检测的有 admin.php 和 reply.php 这两个页面。
登录检测代码如下:
session_start(); // 未登陆则重定向到登陆页面 if(!isset($_SESSION['username'])){ header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\' )."/login.php"); exit; }
留言列表管理功能
留言管理界面需要加入的管理功能为留言回复表单与留言删除链接,这里大部分代码与 index.php 页面一致,因此部分重复代码会省略:
require("./conn.php"); require("./config.php"); // …… while($gb_array = mysql_fetch_array($result)){ echo $gb_array['nickname'],' '; echo '发表于:',date("Y-m-d H:i", $gb_array['createtime']); echo ' ID号:',$gb_array['id'],'<br />'; echo '内容:',nl2br($gb_array['content']),'<br />'; ?> <div id="reply"> <form id="form1" name="form1" method="post" action="reply.php"> <p><label for="reply">回复本条留言:</label></p> <textarea id="reply" name="reply" cols="40" rows="5"><?=$gb_array['reply']?></textarea> <p> <input name="id" type="hidden" value="<?=$gb_array['id']?>" /> <input type="submit" name="submit" value="回复留言" /> <a href="reply.php?action=delete&id=<?=$gb_array['id']?>">删除留言</a> </p> </form> </div> <? echo '<hr />'; } //以下是分页显示代码,只需将 index.php 相应代码处的 index.php 改成 admin.php 即可。 // ……
补充说明
在回复的表单中,增加了隐藏元素用于标识该条留言的 id :
<input name="id" type="hidden" value="<?=$gb_array['id']?>" />
如果回复已存在,则直接显示在文本框中:
<textarea id="reply" name="reply"><?=$gb_array['reply']?></textarea>
<?=$gb_array['reply']?> 是一种 PHP 代码的简写,常用语简短输出,其效果相当于:
<?php echo $gb_array['reply']; ?>