php单文件留言本
PHP实现的简单留言板功能示例【基于thinkPHP框架】
PHP实现的简单留⾔板功能⽰例【基于thinkPHP框架】本⽂实例讲述了PHP实现的简单留⾔板功能。
分享给⼤家供⼤家参考,具体如下:⼊⼝⽂件⽂件名 index.php<?php// 应⽤⼊⼝⽂件// 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');// 开启调试模式建议开发阶段开启部署阶段注释或者设为falsedefine('APP_DEBUG',True);//开发调试模式//define('APP_DEBUG',false);//⽣产模式// 定义应⽤⽬录define('APP_PATH','./Message/');// 引⼊ThinkPHP⼊⼝⽂件require './ThinkPHP/ThinkPHP.php';// 亲^_^ 后⾯不需要任何代码了就是如此简单配置⽂件⽂件名 config.php<?phpreturn array(//'配置项'=>'配置值''SHOW_PAGE_TRACE'=>true,'DB_TYPE' => 'mysqli', // 数据库类型'DB_HOST' => '127.0.0.1', // 服务器地址'DB_NAME' => 'msg', // 数据库名'DB_USER' => 'root', // ⽤户名'DB_PWD' => 'root', // 密码'DB_PORT' => '3306', // 端⼝'DB_PREFIX' => 'ms_', // 数据库表前缀);控制器⽂件名 MsgController.class.php<?phpnamespace Home\Controller;use Think\Controller;use Think\Model;class MsgController extends Controller{public function index(){$msg = D('Msg');$info = $msg->order('id DESC')->select();$this->assign('info',$info);$this->display();}public function sendMsg(){$msg = new \Home\Model\MsgModel();if (!empty($_POST)){$data = $msg->create();if($data){$data['user_hobby'] = implode(',',$data['user_hobby']);$z = $msg->add($data);if ($z){$this->redirect('Msg/sendMsg');}}else{$this->assign('errorInfo',$msg->getError());}}$this->display();}public function upd($id){$msg = D('Msg');if (!empty($_POST)){$z = $msg->save($_POST);if ($z){$this->redirect('index',array(),2,'修改成功');}else{$this->redirect('upd',array('id'=>$id),2,'修改失败');}$info = $msg->find($id);$this->assign('info',$info);$this->display();}}public function addMsg(){$msg = D('Msg');if (!empty($_POST)){$z = $msg->add($_POST);if ($z){$this->redirect('index',array(),2,'添加成功');}else{$this->redirect('addMsg',array(),2,'添加失败');}}else{$this->display();}}public function del($id){if(D('Msg')->delete($id)){$this->success('成功',U('index'),2);}else{$this->error('失败',U('index'),2);}}}模板⽂件名 MsgModel.class.php<?phpnamespace Home\Model;use Think\Model;class MsgModel extends Model{//是否批量验证protected $patchValidate = true;protected $_validate = array(array('title','require','标题不能为空!'), //默认情况下⽤正则进⾏验证array('user','require','留⾔⼈不能为空!'),array('msg','require','内容不能为空!'),);protected $_auto = array (array('status','1'), // 新增的时候把status字段设置为1array('id','NULL'),array('admin_user','ms'),array('replay','NULL'),array('update_time','time',3,'function'), // 对update_time字段在更新的时候写⼊当前时间戳 array('send_msg_time','time',3,'function'),);}视图⽂件名 addMsg.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><div><form action="__SELF__" method="post" ><table border="1" width="100%" class="table_a"><tr><td>留⾔时间</td><td><input type="text" name="update_time"/></td></tr><tr><td>留⾔⼈</td><td><input type="text" name="user" /></td></tr><tr><td>标题</td><td><input type="text" name="title" /></td><td>内容</td><td><input type="text" name="msg" /></td></tr><tr><td>回复</td><td><textarea name="replay"></textarea></td></tr><tr><td colspan="2" align="center"><input type="submit" value="添加"><a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a></td></tr></table></form></div></body></html>视图⽂件名 index.html<!DOCTYPE html><html xmlns="/1999/xhtml"><head><title>留⾔列表 -- HoverTree</title><style>.keleyitable {width: 800px;}.keleyitable table, td, th {border: 1px solid green;margin-top:10px;}.klytd {width:100px;text-align:right}.hvttd {width:500px}</style></head><body><div style="margin:0px auto;" class="keleyitable"><h2>留⾔列表</h2><tr><td class="klytd"><a href="__CONTROLLER__/addMsg" rel="external nofollow" >添加</a></td><td class="hvttd"></td></tr><volist name="info" id="vo"><table><tr><td class="klytd">留⾔时间:</td><td class="hvttd">{$vo.update_time|date="Y-m-d H:i:s",###}</td></tr><tr><td class="klytd">留⾔⼈:</td><td class="hvttd">{$er}</td></tr><tr><td class="klytd">标题:</td><td class="hvttd">{$vo.title}</td></tr><tr><td class="klytd">内容:</td><td class="hvttd">{$vo.msg}</td></tr><tr><td class="klytd">回复:</td><td class="hvttd">{$vo.replay}</td></tr></table><tr><td class="klytd"><a href="__CONTROLLER__/upd/id/{$vo.id}" rel="external nofollow" >修改</a></td><td class="hvttd"></td></tr><tr><td class="klytd"><a href="__URL__/del/id/{$vo.id}" rel="external nofollow" >删除</a></td><td class="hvttd"></td></tr></volist></div><div style="width:800px;margin:10px auto;font-family:Arial, Helvetica, sans-serif;text-align:center;">HoverTree © 2014 </div> <!--最近打算开发⼀个留⾔板,的开源项⽬, --></body></html>视图⽂件名 sendMsg.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><form action="" method="post">标 题: <input type="text" name="title"><span style="color:red;">{$errorInfo.title}</span><br><br>信 息: <input type="text" name="msg"><span style="color:red;">{$errorInfo.msg}</span><br><br>留⾔⼈: <input type="text" name="user"><span style="color:red;">{$er}</span><br><br><input type="submit" value="提交"></html>视图⽂件名 upd.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><div><form action="__SELF__" method="post" ><input type="hidden" name="id" value="{$info.id}"><table border="1" width="100%" class="table_a"><tr><td>留⾔时间</td><td><input type="text" name="update_time" value="{$info.update_time}" /></td></tr><tr><td>留⾔⼈</td><td><input type="text" name="user" value="{$er}" /></td></tr><tr><td>标题</td><td><input type="text" name="title" value="{$info.title}" /></td></tr><tr><td>内容</td><td><input type="text" name="msg" value="{$info.msg}" /></td></tr><tr><td>回复</td><td><textarea name="replay">{$info.replay}</textarea></td></tr><tr><td colspan="2" align="center"><input type="submit" value="修改"><a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a> </td></tr></table></form></div></body></html>⽬录结构数据库 sql语句SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;---- 資料庫: `msg`---- ------------------------------------------------------------ 表的結構 `ms_msg`--CREATE TABLE IF NOT EXISTS `ms_msg` (`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',`admin_user` varchar(100) NOT NULL COMMENT '管理员',`update_time` int(10) NOT NULL COMMENT '更新时间',`status` int(2) NOT NULL COMMENT '状态',`send_msg_time` int(10) NOT NULL COMMENT '留⾔时间',`user` varchar(100) NOT NULL COMMENT '留⾔⼈',`title` varchar(100) NOT NULL COMMENT '标题',`msg` varchar(200) NOT NULL COMMENT '内容',`replay` varchar(200) NOT NULL COMMENT '回复',PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='留⾔表' AUTO_INCREMENT=19 ;---- 轉存資料表中的資料 `ms_msg`--INSERT INTO `ms_msg` (`id`, `admin_user`, `update_time`, `status`, `send_msg_time`, `user`, `title`, `msg`, `replay`) VALUES (1, 'ms', 1479449110, 1, 1479449110, '1', '拉克丝的减肥', '对⽅科⽬了', 'NULL'),(7, '', 321423432, 0, 0, 'kljflwk', 'kjsdfnlk', 'nlkdsjfn', 'kljnf'),(3, 'ms', 1479451017, 1, 1479451017, '1', '轻松的发⽣我', '沃尔沃飞', 'NULL'),(8, 'ms', 1479544687, 1, 1479544687, '', 'qwe', '', 'NULL'),(9, 'ms', 1479544693, 1, 1479544693, 'qwe', 'qwe', 'qwe', 'NULL'),(10, 'ms', 1479544970, 1, 1479544970, 'qwe', 'qwe', 'qwe', 'NULL'),(11, 'ms', 1479544979, 1, 1479544979, '12', '12', '12', 'NULL'),(12, 'ms', 1479545029, 1, 1479545029, '12', '12', '12', 'NULL'),(13, 'ms', 1479546357, 1, 1479546357, '12', '12', '12', 'NULL'),(14, 'ms', 1479547163, 1, 1479547163, '12', '12', '12', 'NULL'),(16, 'ms', 1479547667, 1, 1479547667, '12', '12', '123', 'NULL'),(17, 'ms', 2147483647, 1, 1479547682, '上来昆明3', '说的了付款', '蓝⼭咖啡', '123213');/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》。
学写php单文件留言本
学写php单文件留言本实现功能:增加留言留言删除翻页管理员修改密码基于一个页面实现留言板的完整功能注释比较详细用户名:admin密码:123456<?phpsession_start(); //启动会话/** 单文件留言本* 请注明来自于*///变量定义、赋值$db_host = 'localhost:3306'; //设置数据库主机端口号一般为localhost:3360 通常不需修改$db_user = 'root'; //设置数据库用户名$db_pass = 'liujie'; //设置数据库密码$db_name = 'test'; //设置数据库名称$db_char = 'GBK'; //设置数据库字符集默认GBK 通常情况不需修改//定义常量define('Per_page',6); //定义每页记录数?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" xml:lang="zh" lang="zh" ><head><meta http-equiv="Content-Type" content="text/html; charset=GBK" /><title>k 留言板</title><style><!--body{padding:0;margin:0;height:100%;overflow-y:auto;}#contain{width:900px;margin:0 auto;}#hd{width:400px;margin:50px auto;}.forms{margin:60px auto;width:400px;color:green;font-size:20px;}.list{width:900px;margin:20px auto;}.current{color:green;font-size:20px;}#showmsg {display:none; top:100px; left:300px; width:600px; height:300px;position:fixed;background:#CCF;padding:50px;opacity: 0.9;} /* IE并不认识fixed,而FF认识*/* html #showmsg {position:absolute;} /* 这个只有IE认识*/</style><script language="javascript"><!--//表单验证function CheckForm(){if(ername.value==""){alert("请填写用户名");ername.focus();return false;}if(myform.title.value==""){alert("请填写标题");myform.title.focus();return false;}if(myform.msg.value.length<5){alert("留言需要大于5个字符");myform.msg.focus();return false;}}function CheckPassword(){if(repassform.admin_pass.value.length<6){alert("密码长度大于6");repassform.admin_pass.focus();return false;}if(repassform.admin_pass.value != repassform.admin_pass2.value){ alert("密码不相同");repassform.admin_pass2.focus();return false;}}//全选function checkAll(name){var el = document.getElementsByTagName('input');var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name)){el[i].checked = true;}}}//取消全选function clearAll(name){var el = document.getElementsByTagName('input');var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name)){el[i].checked = false;}}}//反选function disAll(name){var el = document.getElementsByTagName('input');var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name) && el[i].checked == true) {el[i].checked = false;}else{el[i].checked = true;}}}//--></script></head><body><div id="contain"><div id="hd"><h1>留言板</h1><a href="?">首页</a> <a href="?do=manage">管理</a></div> <div id="showmsg"><p id="info" name="info"></p><p id="tip" name="tip"></p></div><script language="javascript"><!--//跳转function Redirect(Url){window.location = Url;}var i = 0;//显示倒计时function dis(time){document.getElementById("tip").innerHTML = "" + (time - i) + "秒后跳转";i++;}//显示提示,定时跳转function ShowMsg(msg,time,Url){document.getElementById("showmsg").style.display= "block" ;document.getElementById("info").innerHTML = msg;if(time>0 && Url != ''){timer=setInterval("dis('"+time+"')", 1000);//显示时间timer=setTimeout("Redirect('"+Url+"')",time * 1000); //跳转}}//--></script><?php//实例化基础类$base = new base($db_host,$db_user,$db_pass,$db_name,$db_char);//定义基础类class base{private static $conn ;var $err ;//php5 构造函数初始化连接function __construct($db_host,$db_user,$db_pass,$db_name,$db_char='GBK'){/*连接数据库& 设置数据库字符集*/@ $dbo = mysql_connect($db_host,$db_user,$db_pass) or die('请检查是否数据库密码是否正确。
简单的PHP留言板制作(一)
简单的PHP留⾔板制作(⼀)⾸先是确定⾃⼰的留⾔板需求.例如:名字,邮件及留⾔内容.⼀. 建⽴⼀个数据库guestbook。
CREATE TABLE IF NOT EXISTS `content` (`id` int(11) NOT NULL auto_increment,`name` varchar(20) NOT NULL,`email` varchar(50) NOT NULL,`content` varchar(200) NOT NULL,PRIMARY KEY (`id`))ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;⼆. 新建config.php<?php$q = mysql_connect("服务器","数据库⽤户","数据库密码");if(!$q){die('Could not connect: ' . mysql_error());}mysql_query("set names utf8"); //以utf8读取数据mysql_select_db("guestbook",$q); //数据库>三.新建index.php<?phpinclude("config.php"); //引⼊数据库连接⽂件$sql = "select * from content"; //搜索数据表content$resule = mysql_query($sql,$q);><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><body><table width="678" align="center"><tr><td colspan="2"><h1>留⾔本</h1></td></tr><tr><td width="586"><a href="index.php">⾸页</a> | <a href="liuyan.php">留⾔</a></td></tr></table><p>while($row=mysql_fetch_array($resule)){></p><table width="678" border="1" align="center" cellpadding="1" cellspacing="1"><tr><td width="178">Name:<? echo $row[1] ?></td><td width="223">Email:<? echo $row[2] ?></td></tr><tr><td colspan="4"><? echo $row[3] ?></td></tr><tr></table><?}></body></html>四.新建liuyan.php<html><body><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><table width="678" align="center"><tr><td colspan="2"><h1>留⾔本</h1></td></tr><tr><td width="586"><a href="index.php">⾸页</a> | <a href="liuyan.php">留⾔</a></td> </tr></table><table align="center" width="678"><tr><td><form name="form1" method="post" action="post.php"><p>Name:<input name="name" type="text" id="name"><p>Email:<input type="test" name="email" id="email"></p><p>留⾔:</p><p><textarea name="content" id="content" cols="45" rows="5"></textarea></p><p><input type="submit" name="button" id="button" value="提交"><input type="reset" name="button2" id="button2" value="重置"></p></form></td></tr></table></body></html>五. 新建post.php<?phpheader("content-Type: text/html; charset=utf-8");include("config.php");$name= $_POST['name'];$email= $_POST['email'];$patch = $_POST['content'];$content = str_replace("","<br />",$patch);$sql = "insert into content (name,email,content) values ('$name','$email','$content')"; mysql_query($sql);echo "<script>alert('提交成功!返回⾸页。
PHP编写一个简单的留言板
留言板是网站与用户之间交流的场所。用户在浏览网站时, 有何疑问或者其它问题,就可以通过网站所提供的留言板 给网站留言。网站管理员在查看了用户留言后,可做出相 应的回应。本章将对采用PHP编写一个简单的留言板做 详细的讲解。
24.1 留言板简介
留言板的主要功能就是用户留言,然后管理员能够对用户的 留言进行审核,审核通过显示,否则隐藏用户的留言。对 于用户需要解决的问题进行回复,对于用户的一些垃圾留 言进行删除处理。
24.3.1 系统配置文件
留言板系统的有一个配置文件。该文件配置了整个留言板系 统所需要的所有配置选项。
24.3.2 数据库连接
留言板系统页面中的数据都是存放在数据库中,所有的留言 板页面都将和数据库进行交互。因此,将与数据库连接代 码放置在一个公共的PHP文件中十分必要,然后在所有 与需要与数据库进行交互的页面中采用以下代码引用数据 库连接文件即可。
24.3.9 审核留言模块
留言板系统中可以设置是否直接显示用户未经过管理员审核 的留言。不论如何显示用户的留言,管理员在登录均可对 用户的留言进行审核,可隐藏或显示用户的留言。
24.5 小结
本章介绍了留言板实例的整个开发过程。留言板系统是非常 简单的一个采用PHP开发的Web应用。由于这是读者第 一次接触到一个完整的系统,所以本章也是本书的一个难 点。读者应在理解需求的基础上仔细阅读本章中的代码, 以完全掌握如何开发一个完全的Web应用。
24.3.7 回复留言模块
管理员在登录后查看某条留言时,若该条留言还未回复,则 显示回复留言。
24.3.8 删除留言模块
对于网友所发表的一些垃圾留言,管理员可在登录以后,删 除该网友的留言。删除网友留言可以在两个地方进行操作 。
php留言本课程设计
php留言本课程设计一、课程目标知识目标:1. 理解PHP语言基础,掌握变量、数据类型、运算符、控制结构等基本语法;2. 学会使用PHP进行表单数据处理,包括获取表单数据、验证数据有效性;3. 掌握使用文件操作实现留言的存储与读取;4. 了解PHP中_SESSION的使用,实现简单会话管理。
技能目标:1. 能够独立编写简单的PHP程序,实现一个具备留言发布、查看功能的留言本;2. 掌握使用PHP结合HTML进行网页编程,实现动态网页的构建;3. 学会使用PHP进行简单的错误处理和异常处理;4. 培养良好的编程习惯,编写结构清晰、可维护的代码。
情感态度价值观目标:1. 培养学生解决问题的能力,面对编程挑战时保持积极乐观的态度;2. 激发学生对计算机编程的兴趣,提高学习主动性和积极性;3. 强调团队协作的重要性,培养学生与他人合作共同解决问题的能力;4. 培养学生的创新意识,鼓励学生勇于尝试新方法,解决实际问题。
本课程针对高中年级学生,结合教材内容,注重理论与实践相结合。
通过本课程的学习,使学生能够掌握PHP编程基础,培养实际编程能力,同时培养良好的情感态度价值观。
教学要求中,强调学生的主动参与和动手实践,以实现课程目标的分解和具体学习成果的达成。
二、教学内容1. PHP基础语法- 变量、数据类型、常量- 运算符、控制结构(条件语句、循环语句)- 函数、数组、字符串操作- 教材章节:第一章至第三章2. 表单数据处理- HTML表单与PHP交互- 超全局变量$_POST、$_GET、$_REQUEST- 数据验证与过滤- 教材章节:第四章3. 文件操作- 文件打开、读取、写入、关闭- 文件上传- 留言存储与读取- 教材章节:第五章4. 会话管理- $_SESSION的使用- 简单的会话控制- 教材章节:第六章5. 留言本实践项目- 留言发布功能- 留言查看功能- 留言管理功能(可选)- 教材章节:实践案例教学内容安排和进度:共10个课时,前6个课时进行PHP基础语法、表单数据处理和文件操作的学习,第7至8课时学习会话管理,最后2个课时进行留言本实践项目的开发与调试。
php留言板课程设计
php留言板课程设计一、课程目标知识目标:1. 理解PHP语言的基本语法和结构,掌握常用数据类型和变量操作;2. 学习使用PHP进行表单数据处理,特别是文件上传和留言板功能实现;3. 掌握数据库连接和操作,使用MySQL进行数据存储和管理;4. 了解PHP中的会话控制,理解Cookie和Session的使用场景。
技能目标:1. 能够独立编写PHP代码,实现一个具备用户注册、登录、留言、查看留言等基本功能的留言板系统;2. 能够使用PHP处理表单数据,完成数据验证和转义,防止SQL注入和XSS 攻击;3. 能够建立数据库,设计合理的表结构,并通过PHP进行数据的增、删、改、查操作;4. 能够运用所学知识解决实际开发中遇到的问题,具备一定的故障排查和代码优化能力。
情感态度价值观目标:1. 培养学生的编程兴趣,激发学习PHP及Web开发的热情;2. 强化学生的团队合作意识,通过小组讨论和项目实施,提升沟通协作能力;3. 培养学生解决问题的能力,增强面对挑战时的自信心和耐心;4. 引导学生关注网络安全,树立正确的网络道德观念,自觉遵守网络规范。
本课程针对高年级学生,在已有一定编程基础的前提下,通过设计并实现一个留言板系统,将PHP理论与实践相结合,旨在提高学生的实际开发能力,培养学生的创新意识和团队合作精神。
课程目标具体、可衡量,为教学设计和评估提供明确方向。
二、教学内容1. PHP基础回顾:变量、数据类型、常量、运算符、流程控制(条件语句、循环语句)、函数、数组、字符串处理。
2. 表单处理:表单结构、表单数据获取、数据验证、数据转义、文件上传处理。
3. 数据库连接与操作:MySQL基础、PHP操作MySQL(连接数据库、执行SQL语句、处理结果集)、数据存储与管理、预处理语句、事务处理。
教材章节:《PHP与MySQL网站开发》第3、4章。
4. 留言板系统设计:系统需求分析、数据库设计、用户注册与登录、留言发布、留言列表展示、分页实现、数据安全。
PHP编写留言本
PHP+MySQL写留言本留言本最基本的功能就是:1:用户写留言2:把数据写入数据库3:显示所有留言下面就开始制作我的留言本首先在PHPMYADMIN下建立一guest_book数据库然后在该数据库下建立一个contents的表该表下建立两个字段分别为name 和contentSQL语句如下:CREATE TABLE `contents` (`id` int(11) NOT NULL auto_increment,`name` varchar(20) NOT NULL default '"no name"',`content` mediumtext NOT NULL,PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=6好了数据库建好了~~`下面开始写程序了该程序包含三个页面post.htm(留言提交页面) index.php(留言显示页面) updata.php(把数据写入数据库的页面)post.htm代码如下:<html><head><meta http-equiv="Content-Type" c><title>留言本</title></head><body><form action="updata.php" method="post" name="name1">姓名:<input type="text" name="user_name"><br>留言:<textarea name="post_contents" rows="10" cols="50"></textarea><input type="submit"></form></body></html>updata.php页面代码如下:<?$name=$_POST['user_name'];$content=$_POST['post_contents'];$conn=mysql_connect("localhost:6033", "root", "");mysql_query("set names utf-8"); //解决中文乱码问题mysql_select_db("guest_book");$exec="insert into contents (name,content) values('".$_POST['user_name']."','".$_POST['post_contents']."')";$result=mysql_query($exec);?>index.php页面代码如下:<?$conn=mysql_connect ("localhost:6033", "root", ""); //打开mysql 服务器连接mysql_select_db("guest_book"); //链接数据库mysql_query("set names utf-8"); //解决中文乱码问题$exec="select * from contents"; //sql语句$result=mysql_query($exec); //执行sql语句,返回结果while($rs=mysql_fetch_object($result)){echo "<table><tr><td>姓名:".$rs->name."</td></tr>";echo "<tr><td>留言:".$rs->content."</td></tr></table><br/>";}?>至于分页,页面转向等功能暂时不用上去.为得就是使程序尽量精简.麻雀虽小.但是留言本的核心功能全在这里了.其中还需要再多说几句$conn=mysql_connect ("localhost:6033", "root", "");这一句很重要一开始我用的是$conn=mysql_connect ("127.0.0.1", "", "");怎么弄都不见数据进数据库去~~~~但是又没报错~~后来看了半天才知道原来哪个127的地方应该在PHPMYADMIN里看服务器名一击数据库端口是什么~~~还有ROOT那里就是mysql用户名了,后面的是密码还有个问题就是汉字乱码问题在$result=mysql_query($exec); 语句前面加上mysql_query("set names gb2312");或者mysql_query("set names utf-8");可疑防止提交进数据库的汉字以乱码形式存放在数据库中以及防止从数据库中查询出来的包含汉字的数据以乱码显示有时候尽管这样设置了后还是无法正常显示汉字~~~~我就遇见了这样的情况,由于我是在本地调试的,每次都要把浏览器上的那个字符编码调到utf-8才能正常显示汉字默认的编码总是ISO-8859-1 于是google了一下`~原来是apache设置不对.于是找到httpd.conf 设置文件把default-character-set=ISO-8859-1 改为default-character-set=utf-8然后再service httpd restart 重启appache 清除所有cookies与历史记录~~~然后问题就解决了------------------------------------------------------------------------------------今天再稍微改善下加一个管理员管理留言的功能~~~这里最主要要用到$_SESSION['item'] 这个东东~~` 好了`~`先把昨天的稍微改一下再把这个功能加进去~~~首先我们在首页同时显示留言,以及留言添加框~~这样使留言者方便使用`~`不说多了`~把代码贴出来再说:index.php<html><head><meta http-equiv="Content-Type" c><title>留言本</title></head><body><a href="admin_login.htm" tagert="_blank">留言管理</a><?$conn=mysql_connect ("localhost:6033", "root", ""); //打开MySQL服务器连接mysql_select_db("guest_book"); //链接数据库mysql_query("set names GB2312"); //解决中文乱码问题$exec="select * from contents"; //sql语句$result=mysql_query($exec); //执行sql语句,返回结果while($rs=mysql_fetch_object($result)){echo "<table><tr><td>姓名:".$rs->name."</td></tr>";echo "<tr><td>留言:".$rs->content."</td></tr></table><br/>";echo ".............................................................................................................................";}mysql_close();?><br><br><br><form action="updata.php" method="post" name="name1">姓名:<input type="text" name="user_name"><br>留言:<textarea name="post_contents" rows="10" cols="50"></textarea><input type="submit" value="提交留言"></form></body></html>updata.php页再加个header("location:index.php");语句重定向到主页面`~~ updata.php<?$name=$_POST['user_name'];$content=$_POST['post_contents'];$conn=mysql_connect("localhost:6033", "root", "");mysql_query("set names GB2312"); //解决中文乱码问题mysql_select_db("guest_book");$exec="insert into contents (name,content) values('".$_POST['user_name']."','".$_POST['post_contents']."')";$result=mysql_query($exec);mysql_close();header("location:index.php");?>HOHO~~~是不是用起来有那么回事了`~~好的`~下面再加个管理功能~~那么这个留言本就更加强大了`~留言管理模块分为管理员登录页admin_login.htm ,管理员验证页admin_check.php 后台管理首页admin_index.php先农这个登录页面admin_login.htm<form action="admin_check.php" method="post" name="form2">用户名:<input type="text" name="admin_name">密码:<input type="password" name="admin_password"><input type="submit" value="进入后台管理"></form>这个简单得再简单不过了,我就不说什么了`~~admin_check.php管理员验证<?session_start();$admin_name=$_POST['admin_name'];$admin_password=$_POST['admin_password'];$conn=mysql_connect ("localhost:6033", "root", "");mysql_select_db("guest_book");$exec="select * from admin where admin_name='".$admin_name."'";$result=mysql_query($exec);if ($rs=mysql_fetch_object($result)){ if ($rs->admin_password==$admin_password){$_SESSION['admin']="OK";header("location:admin_index.php");}else echo"密码不正确";}else echo"用户名不正确";mysql_close();?>这里最主要的就是session~~~凡事要用到session的地方.在页面最开始处要加上这一句session_start();否则就无法使用~~那么session究竟是什么东东呢?由于网页的传输方式(也就是http这个东西) 不是永久连接的~~`所以服务器无法在两个不同页面之间传送变量`~~唉.我一下子也说不清楚`~~还是看看这里/read.php?wid=87上面有很详细的介绍.反正就是用这个东西来验证管理员的身分了`~~好了下面说后台管理主页面admin_index.php<?session_start();if($_SESSION['admin']=="OK"){$conn=mysql_connect ("localhost:6033", "root", "");mysql_select_db("guest_book");$exec="select * from contents";$result=mysql_query($exec);while($rs=mysql_fetch_object($result)){echo "<table><tr><td>姓名:".$rs->name."</td></tr>";echo "<tr><td>留言:".$rs->content."</td></tr></table><br/>";echo "<a href=modify.php?id=".$rs->id." >修改</a> <ahref=delete.php?id=".$rs->id." >删除</a>";}echo "<br><br><br><br><br><a href=index.php >回首页</a>";}mysql_close();?>这里最主要是这一句echo "<a href=modify.php?id=".$rs->id." >修改</a> <a href=delete.php?id=".$rs->id." >删除</a>";用来向所连接到的地址传递参数~~看看下面的就知道有什么用了modify.php<?session_start();if($_SESSION['admin']=="OK"){$conn=mysql_connect ("localhost:6033", "root", "");mysql_select_db("guest_book");$exec="select * from contents where id=".$_GET['id']; /*这里这个$_GET['id']就是取得从那个连接传递过来的参数拉*/$result=mysql_query($exec);$rs=mysql_fetch_object($result);$name=$rs->name;$content=$rs->content;$id=$rs->id;?><form action="modify2.php" method="post" name="name1">ID :<?=$id?><input type=hidden name=id value=<?=$id?> >姓名:<?=$name?><br>留言:<textarea name="post_contents" rows="10"cols="50"><?=$content?></textarea><input type="submit" value="提交修改"></form><?}mysql_close();?>这里这个<?=$id> 其实就等于echo $id再看看最终的数据修改实现页面modify2.php<?session_start();if($_SESSION['admin']=="OK"){$conn=mysql_connect ("localhost:6033", "root", "");mysql_select_db("guest_book");$exec="select * from contents where id=".$_GET['id'];$exec="update contents set content='".$_POST['post_contents']."' whereid=".$_POST['id'];$result=mysql_query($exec);}mysql_close();header("location:admin_index.php");?>最后就是删除功能的实现了delete.php<?session_start();if($_SESSION['admin']=="OK"){$conn=mysql_connect ("localhost:6033", "root", "");mysql_select_db("guest_book");$exec="delete from contents where id=".$_GET['id'];mysql_query($exec);mysql_close();header("location:admin_index.php");}?>/////////////////////////////////////////////////////////////////////////////////////////////////////////////今天用到的知识如下:1: session_start(); $_SESSION['变量名']=$变量名或者某一特定值2: <a href="#####.php?var=##">aaa</a>用这个方法来传递参数同时用$_GET['var']来接收传递过来的值3: 数据修改:$exec="update tablename set item1='".$_POST['item1']."' where ...";4: 数据删除:$exec="delete from tablename where...";。
php留言板设计总结
PHP留言板设计总结一、系统需求分析在开始设计PHP留言板之前,我们首先进行了系统的需求分析。
通过与潜在用户进行交流,我们明确了以下需求:1. 用户能够注册账号并登录系统;2. 用户可以在留言板上发表留言;3. 用户可以浏览其他用户的留言;4. 管理员可以对留言进行审核和管理;5. 系统应具备良好的安全性和稳定性。
二、数据库设计根据需求分析,我们设计了以下数据库表:1. users(用户表):用于存储用户信息,包括用户名、密码、邮箱等;2. messages(留言表):用于存储留言信息,包括留言内容、发布时间、发布者等;3. admins(管理员表):用于存储管理员信息,包括管理员ID、姓名、密码等。
三、用户界面设计在用户界面设计方面,我们采用简洁、直观的布局,以便用户能够轻松地使用留言板。
主要界面包括:登录页面、注册页面、留言页面、留言列表页面和管理后台页面。
四、后端逻辑实现后端逻辑主要涉及用户认证、留言发布和审核等功能。
我们使用PHP编写后端代码,实现了以下功能:1. 用户注册和登录:通过验证用户输入的用户名和密码是否存在于数据库中来处理注册和登录请求;2. 留言发布:用户在留言页面输入留言内容,后端代码将内容存储到数据库中;3. 留言审核:管理员可以在管理后台对留言进行审核,决定是否显示该留言。
五、安全性考虑在安全性方面,我们采取了以下措施:1. 对用户密码进行哈希加密处理,以确保用户数据的安全性;2. 使用防止跨站脚本攻击(XSS)的过滤器来防止恶意脚本的执行;3. 对管理员登录进行了安全处理,例如使用验证码和时间限制,以防止暴力破解攻击。
六、性能优化为了提高系统的性能,我们采取了以下优化措施:1. 使用缓存技术来减少对数据库的访问次数;2. 对数据库查询进行了优化,以加快查询速度;3. 使用负载均衡技术来分散请求负载,提高系统的处理能力。
七、测试与调试最后,我们对PHP留言板进行了测试与调试,包括单元测试和集成测试。
经典PHP留言本教程
教程连载1:PhpChina留言本实例在第一期中,我们来一步一步实现一个最基本的留言本。
留言信息包括留言者,留言内容,留言时间,留言者IP。
(本文假设你已对HTML以及PHP语法比较熟练了)第一步:设计数据库新建一个数据库,打开phpMyAdmin,新建一个数据库gb,下面整理选择utf8_general_ci,然后在数据库中建一个表message,字段数为5:utf8_general_ci。
每个字段的含义:id-- 留言的编号,类型为整数型,长度是10,属性选择为unsigned是表明这个字段是无符号字段,不会有负数,所以可以存取的范围会增加一倍(因为如果原来的范围是-9 到10,那么设置为unsigned后范围则变为0到19),额外设置为auto_increment,表明这个字段是自动增加的,我们不用管插入数据时它是啥值,它会自动在最大的id的基础上自动加1,其他设置为主键。
username -- 留言者的名字,类型为字符型(关于char与varchar的区别请查看MYSQL手册),长度为100(正常人用户名不可能超过100吧,其实应该尽量减少长度,提高性能,节约空间)content-- 即留言内容,类型为text(text和blob的唯一的区别在于text不区分大小写,而blob对字符的大小写),text类型可以存足够多的数据,足够存好几篇文章了,此类型不能设置长度,否则报错。
time -- 即发布留言的时间,类型为int,长度为10,保存的数据格式是UNIX时间戳(即用PHP函数time()得到的10位数字),而不存xxxx-xx-xx这样的格式,为何这样后面或解释。
ip -- 即留言者的IP,格式为xxx.xxx.xxx.xxx,总共15个字符,所以长度设置为15。
第二步:设计界面在这我们直接偷蓝色理想的BXNA的界面( )HTML和CSS的东西就不详细讲了,不然写10期也写不完这个留言本了 (在code文件夹中有一个html文件,是单独分离出来的)第三步:开始写程序咯先要想好程序的整体构架,代码执行的流程等。
用PHP构建留言本实例
用PHP构建留言本实例用PHP构建留言本实例导语:留言板,大家都有接触过,但是要你自己用php语言来写一个的话,你会吗?以下的是店铺为大家搜集的用PHP构建一个留言本,希望对你有所帮助。
下面是配置说明:为了配置的方便,重新整理了代码,现在已经把全部的需要设置的参数都放在config.php文件里了,配置起来应该很简单,里面有详悉的说明.目标:在十分种内搞定你的留言本!1: 建立一个数据库(要主页提供数据库空间)一般的有phpMyAdmin开放源玛的前端.创建以来很简单的. 取好名字后,记得把config.php 的$db_name改成这个名字2: 建立留言数据表表(等下把config.php的$table_name改成这里你起的名字).结构为:key_liuyan int(11) auto_increment primary key, //主建,自动增加nikename varchar(20) null // 昵称subject varchar(100) null // 留言主题date_created varchar(19) // 留言时间ip_address varchar(15) // 留言人的IP地址message mediumtext null // 留言信息email_address varchar(50) null // 留言人的e-mail地址zhuye_address varchar(50) null // 留言人的主页地址huifu_biaozi int(1) default 0 // 版主回复标志huifu mediumtext null // 版主回复内容oicq varchar(20) null // 留言人的OICQ号码可以用如下的SQL来完成(本人测试通过,记得把yourtable_name改成好记点的, 当然不改也行阿)create table your_liuyan_table(key_liuyan int(11) auto_increment primary key,nikename varchar(20) null,subject varchar(100) null,date_created varchar(19) ,ip_address varchar(15),message mediumtext null,email_address varchar(50) null,zhuye_address varchar(50) null,huifu_biaozi int(1) default 0 ,huifu mediumtext null,oicq varchar(20) null)3: 建立控制表:(同样要把这里起的名字放到config.php的$table_name_control里去)结构如下:leibie varchar(20) primary key,value varchar(20) null也可以用下面的SQL语句:create table your_control_table(leibie varchar(20) primary key,value varchar(20) null)因为这是你的控制表,所以要自己加入控制记录两条;SQL语句为:插入删除密码:insert into your_control_tble( leibie, value)values (delete,'1332');插入回复密码:insert into your_control_tble( leibie, value)values (huifu,'1332');这样放进去的密码为:123,用户名为空!怎么计算密码和插入的值的关系呢?是这样的,你的密码,如123 把三位数上的各位加起来,等于6,然后把6乘以222就是密码值6*222=1332.知道了这关系,当然你可以改成其它的密码了.不过用户名要为空,,,4: 一切完成,然后只要把除了readme.txt外的文件上传就行了.post.php 文件<?phprequire('config.php');><?php$nikename=$arr_request['nikename'];if (strlen($nikename)==0){echo "<center>";echo "<h2><font color=red>错误信息!</font></h2>";echo "对不起,<font color=red>呢称</font>必须填写请重填!<br>";echo "<hr></hr>";echo "免费留言本由<a href=>小熊</a>提供技术支持";echo "</center>";exit ;}$date_now=date('Y/m/d H:i:s');$ip_address=getenv("REMOTE_ADDR");$messageold=$arr_request['message'];//$pattern="/n/";//$replacement="<br>";$message=computer_message($messageold,$hang_zifu_nu mber);$subjectold=$arr_request['subject'];if (strlen($subjectold)>$hang_zifu_number)$subject=computer_message($subjectold,$hang_zifu_numb er);else$subject=$subjectold;$str_sql=" insert into $table_name(nikename,subject,date_created,ip_address,message,email_a ddress,zhuye_address,oicq)values( '$nikename','$subject','$date_now','$ip_address','$message','".$arr_request['email_address']."','".$arr_request['zhuye_address']."','".$arr_request['oicq']."')";$result=mysql_db_query($db_name,$str_sql,$id_link);if (! $result){affy_error_exit('SQL Insert Execution has failed.');}else{echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">";echo "<HTML><HEAD><TITLE>发表文章</TITLE>";echo "<META content="text/html; charset=gb2312" http-equiv=Content-Type>";echo "<meta HTTP-EQUIV="REFRESH" CONTENT="2;URL=display.php">";echo "</head><body topmargin="0"><br>";。
PHP案例留言板设计
案例留言板设计一、概述现在很多网站都考虑到了与用户之间的互动交流,于是出现了各种各样的留言板。
在留言板中,用户可以看到前面使用者的留言,也可以留下自己的言论。
对商务网站,用留言板可以了解用户的需求和意见。
现在,网上也有很多免费的留言板程序,但亲自动手做一个,能体会其中的奥秘,应该是一个不错的主意。
二、系统架构留言板的功能可大可小,小则简单地让用户浏览留言和写一个短篇留言,具有回复的功能;大则可以做到能按不同讨论分门别类的WebBBS系统,再大就是Web社区系统了。
本案例留言板功能具有:1.浏览留言。
以一个主页形式,显示留言具有分页浏览功能。
2.回复留言。
通过主页的“回复留言”超级链接,进入写留言页面。
3.隐藏留言。
具有管理员身份的用户具有屏蔽不适宜公布留言的功能,也是在通过主页的“隐藏留言”超级链接,进入留言管理页面。
工作流程图如图1所示:管理员图1说明:1.用户向服务器发出访问请求;2.服务器根据用户的角色显示主页面的功能1)一般用户,在留言板的主页面中有浏览和回复功能;2)管理员,在留言板的主页面中有浏览、回复和屏蔽功能;3.留言信息记录在数据库中;4.服务器从数据库中读取留言信息显示在页面上,也把用户的留言存储在数据库中。
三、系统设计1.逻辑结构设计根据对系统架构的描述,可得系统的逻辑结构,如图2所示。
图22.数据库设计在MySQL数据库服务器上建立名为guest数据库,其中包含数据表guestbook,各字段的定义和说明如表1:表1 guest数据库中的数据表guestbook结构注:通过phpMyadmin建立,在MySQL的data文件夹中会自动创建以此数据库为名的文件夹,包含相关数据。
本案例用到的SQL命令如表2。
表2 本案例用到的SQL命令3.界面设计主页界面屏蔽留言页信息操作成功提示行,返回主页。
四、编码实现1.主页代码文件:index.php--> </style></HEAD><BODY><CENTER> <H1><FONT color=blue>留言板</FONT></H1></CENTER> ";//判断来者是否为管理员----[mark1]$webmasteIP=array("127.0.0.1");$isMaster=false;for($i=0;$i<count($webmasteIP);$i++){if ($REMOTE_ADDR==$webmasteIP[$i]){$isMaster=true;break;}}//连接数据库服务器----[mark2]$connection=@mysql_connect("localhost","root","") or die("无法连接数据库!");@mysql_query("set names 'gb2312'");@mysql_select_db("guest") or die("无法选择数据库!");//向服务器发送查询请求$query="SELECT * FROM guestbook WHERE flag='Y' ORDER BY time DESC"; $result=mysql_query("$query",$connection) or die("浏览失败");//取回留言$count=0;while($row=mysql_fetch_array($result)){$gb[$count][serial]=$row[serial];$gb[$count][name]=$row[name];$gb[$count][time]=$row[time];$gb[$count][msg]=$row[msg];$gb[$count][email]=$row[email];$gb[$count][flag]=$row[falg];$count++;}mysql_close($connection) or die("无法断开与数据库的连接");//制作导航条----[mark3]$indexstr="<a href=write.php>我要留言</a>|";//当用户进来时把$page设为0if (SQUERY_STRING=="")$page=0;//计算页数$count=count($gb);$msgPerPage=10;$start=$page*$msgPerPage;$end=$start+$msgPerPage;if($end>$count)$end=$count;$totalpage=ceil($count/$msgPerPage);echo "目前留言板共有".$count." 条留言,本页列出了第".($start+1)." 至".$end." 条\n"; //制作页导航if($page>0)$indexstr=$indexstr."<a href=index.php?page=".($page-1).">上一页</a>| ";for($i=0;$i<$totalpage;$i++){if($i!=$page)$indexstr=$indexstr."<a href=index.php?page=$i>第".($i+1)."页</a> ";else$indexstr=$indexstr."<font color=#8080FF>第".($i+1)."页</font>";if($i!=($totalpage-1))$indexstr=$indexstr." | ";}if($page<$totalpage-1)$indexstr=$indexstr."<a href=index.php?page=".($page+1).">下一页</a>";//输出导航条echo "<P>$indexstr</P>\n";//输出留言----[mark4]for($i=$start;$i<$end;$i++){//把换行符转换成<br>$msg=nl2br($gb[$i][msg]);//格式化时间输出$dbdate=$gb[$i][time];$year=substr($dbdate,0,4);$month=substr($dbdate,5,2);$day=substr($dbdate,8,2);$hour=substr($dbdate,11,2);$min=substr($dbdate,14,2);$sec=substr($dbdate,17,2);$time=$month." ".$day." ".$year." ".$hour.":".$min.":".$sec;//输出一条留言的所有信息echo "<P><hr></P>\n";echo "<table border=0 width=90% align=center>";echo "<td width=38% bgcolor=#8080FF>\n";echo "<font color=white>";echo "序列号:".$gb[$i][serial];echo "<BR>昵 称:";if(trim($gb[$i][email])!=""){echo "<a href=mailto:".$gb[$i][email].">";echo "<strong>".$gb[$i][name]."</strong>";echo "</a>";}echo "<BR>时 间:".$time;echo "<BR><a href=write.php?action=reply & serial=".$gb[$i][serial].">回复作者</a>";if($isMaster){echo "|<a href=hide.php?serial=".$gb[$i][serial].">屏蔽这一篇</a>";}echo "</font></td>\n";echo "<td width=70% background=#FFCC99 valign=top>[正文]<br>";echo $msg;echo "</td>\n";echo "</table>\n";}echo "<P><hr></P>\n";echo $indexstr;echo "</BODY></HTML>";?>-- index.php--代码解读1)输出HTML头用echo语句把HTML标记作为字符串引入。
phpcms留言板
phpcms留言板一、什么是phpcms留言板?phpcms留言板是一款基于phpcms框架开发的在线留言系统。
它提供了一个简单易用的留言板功能,让网站管理员可以轻松地在网站上添加留言板,让用户可以在网站上留下自己的评论和建议。
二、phpcms留言板的特点1. 简单易用:phpcms留言板使用简单,无需编写复杂的代码即可实现在线留言功能。
2. 安全可靠:phpcms留言板采用了多种安全机制,保证用户的信息不会被泄露。
3. 可定制性强:phpcms留言板提供了多种定制选项,可以根据不同的需求进行配置。
4. 多语言支持:phpcms留言板支持多种语言,可以满足不同国家和地区用户的需求。
5. 兼容性好:phpcms留言板兼容各种浏览器和操作系统,用户可以在任何设备上使用。
三、如何安装和配置phpcms留言板?1. 下载安装包:从官方网站下载最新版本的phpcms留言板安装包。
2. 解压安装包:将下载好的安装包解压到本地目录中。
3. 配置数据库:打开config/database.php文件,配置数据库连接信息。
4. 导入数据表:打开phpMyAdmin或其他数据库管理工具,创建一个新的数据库,并将安装包中的sql文件导入到该数据库中。
5. 配置网站信息:打开config/config.php文件,配置网站名称、网站URL等信息。
6. 配置留言板:打开config/guestbook.php文件,配置留言板的相关选项,如留言审核、留言分页等。
7. 安装完成:访问网站即可看到已经安装完成的phpcms留言板。
四、phpcms留言板的使用方法1. 添加留言板:在phpcms后台管理界面中,选择菜单“添加新模型”,选择“留言板”模型,并填写相关信息即可添加一个新的留言板。
2. 发布留言:用户可以在前台页面中找到已经添加好的留言板,并在其中填写自己的评论和建议。
管理员可以设置是否需要审核用户提交的评论。
3. 回复评论:管理员可以在后台管理界面中查看用户提交的评论,并进行回复。
PHP实现留言板功能的详细代码
PHP实现留⾔板功能的详细代码本⽂实例为⼤家分享了php留⾔板的实现思路,供⼤家参考,具体内容如下1.创建⼀个存放留⾔信息的⽂件名2.获取表单中的数据给⼀个变量3.判断⽂件的时候存在4.对⽂件执⾏写的操作,在这之前,注意打开⽂件的时候,选择对⽂件的访问⽅式,最后记得关闭⽂件5.对⽂件执⾏读的操作,同样最后要记得关闭⽂件<?php//留⾔板的思路:1.先创建⼀个⽂件名,⽅便于存放写⼊的内容// 2.将表单中的内容赋值给⼀个变量//3.判断⽂件是否存在,将⽤户输⼊的值写进变量,打开⽂件的是时候注意选择对⽂件访问的操作//4.读取⽂件的内容,关闭⽂件header("Content-Type:text/html;charset=utf8");$filename = "message.txt";//创建⼀个⽂件的名字//如果⽤户提交了,就写⼊⽂件,按⼀定格式写⼊if(isset($_POST['dosubmit'])) {//字段的分隔使⽤||, ⾏的分隔使⽤[n]$mess = "{$_POST['username']}||".time()."||{$_POST['title']}||{$_POST['content']}[n]";writemessage($filename, $mess);//向⽂件写进内容}if(file_exists($filename)) {//判断⽂件是否存在readmessage($filename);//读取⽂件的函数}function writemessage($filename, $mess) {$fp = fopen($filename, "a");//在尾部执⾏写的操作,且不删除原来的⽂件内容fwrite($fp, $mess);//写⼊⽂件fclose($fp);//关闭⽂件}function readmessage($filename) {$mess = file_get_contents($filename);$mess = rtrim($mess, "[n]");$arrmess = explode("[n]", $mess);foreach($arrmess as $m) {list($username, $dt ,$title, $content) = explode("||", $m);echo "<b>{$username}</b>, ".date("Y-m-d H:i").": <i>{$title}</i>, <u>{$content}</u><br><hr><br>";}}><form action="message.php" method="post">⽤户: <input type="text" name="username" value="" /><br>标题:<input type="text" name="title" value="" /><br>内容:<textarea name="content" cols="40" rows="4"></textarea><br><input type="submit" name="dosubmit" value="留⾔" /><br></form>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
php留言板的设计与实现
php留言板的设计与实现一、引言PHP留言板是一个非常基础的网站应用程序,但它却是一个非常好的练手项目。
在本文中,我们将会介绍如何设计和实现一个简单的PHP 留言板。
二、技术栈在设计和实现PHP留言板时,我们需要使用以下技术:1. HTML/CSS:用于页面布局和样式设计;2. PHP:用于处理后端逻辑和与数据库交互;3. MySQL:用于存储数据。
三、功能需求在设计和实现PHP留言板时,我们需要实现以下基本功能:1. 用户可以发布留言;2. 用户可以查看所有已发布的留言;3. 用户可以删除自己发布的留言。
四、数据库设计在设计数据库时,我们需要创建一个名为“message_board”的数据库,并创建一个名为“messages”的表。
该表包含以下字段:1. id:自增长主键;2. name:发布者姓名;3. email:发布者邮箱;4. message:留言内容;5. created_at:创建时间。
五、页面设计在页面设计中,我们需要创建以下几个页面:1. 留言列表页面(index.php):显示所有已发布的留言,并提供删除按钮;2. 发布留言页面(add_message.php):提供表单让用户输入姓名、邮箱和留言内容,并提交到后台处理。
六、后端逻辑实现在后端逻辑实现中,我们需要创建以下几个PHP文件:1. 数据库连接文件(db_connect.php):用于连接数据库;2. 留言列表处理文件(index_process.php):用于从数据库中获取所有留言,并提供删除功能;3. 发布留言处理文件(add_message_process.php):用于将用户输入的留言插入到数据库中。
七、具体实现1. 创建数据库和表格首先,我们需要在MySQL中创建一个名为“message_board”的数据库。
然后,在该数据库中创建一个名为“messages”的表格,并添加以下字段:CREATE TABLE messages (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL,message TEXT NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );2. 连接数据库在db_connect.php文件中,我们需要编写代码来连接到MySQL数据库。
php留言板的设计与实现
php留言板的设计与实现
PHP留言板的设计与实现可以分为以下步骤:
1. 数据库设计:创建一个数据库表用于存储留言信息,包括留言id、留言内容、留言时间、留言者昵称等字段。
2. 留言页面设计:创建一个留言页面,包括一个表单用于输入留言内容和留言者昵称,以及一个显示留言内容的区域。
3. 留言信息处理:在留言页面提交表单后,将留言信息插入到数据库表中,并显示最新留言信息。
4. 留言展示处理:从数据库中读取所有留言信息,并按照时间顺序进行排序,然后显示到留言页面上。
5. 留言管理处理:为管理员提供一种方式来管理留言,包括删除不合适留言等操作。
6. 显示分页信息:当留言数量很多时,需要使用分页来展示留言内容,可以使用PHP来实现分页功能。
7. 安全性设计:考虑防止恶意行为,如利用注入等手段来破坏系统的安全性。
总之,PHP留言板的设计与实现需要考虑很多方面,需要仔细思考并逐步实现。
php留言板系统总结与收获
php留言板系统总结与收获1.引言1.1 概述留言板系统是一种常见的网页应用程序,它允许用户在网站上发表留言、评论和交流。
随着互联网的普及和发展,留言板系统在各种网站和社交平台中得到广泛应用。
PHP作为一种流行的服务器端脚本语言,为开发留言板系统提供了强大的支持和灵活的功能。
本文将对PHP留言板系统进行综述与总结,并分享在设计与实现过程中的一些经验和收获。
首先,我们会简要介绍留言板系统的基本概念和功能。
接着,我们会详细讨论留言板系统的设计与实现,包括数据库的设计、用户管理、留言发布与显示等关键方面。
同时,我们也会探讨留言板系统的特点和优势,如安全性、扩展性和用户友好性等。
在实践过程中,我们遇到了一些挑战和问题,但也获得了一些重要的经验和收获。
通过开发留言板系统,我们深入理解了PHP的应用以及与数据库的交互,提高了对前端与后端协同工作的能力。
同时,我们也学会了如何有效地处理用户数据,增强了对网站安全的认识。
在本文的结尾,我们将对整个留言板系统进行总结,并总结我们在设计与实现过程中的经验和教训。
我们相信这篇文章将对正在开发或学习留言板系统的开发者们有所帮助,也希望读者能够从中获得一些启示和灵感。
让我们一起深入研究和探索PHP留言板系统的设计与实现吧!1.2文章结构1.2 文章结构本文将以PHP 留言板系统为研究对象,对其设计与实现进行探讨,并在此基础上分析留言板系统的功能与特点。
文章将分为引言、正文和结论三个部分。
引言部分将概述本文的主要内容和目的,介绍留言板系统的背景和意义,并说明文章的结构安排。
正文部分将详细讲解留言板系统的设计与实现。
首先,将介绍留言板系统的基本构成和必要的功能模块,例如用户管理模块、留言管理模块等。
然后,将详细阐述每个模块的设计思路和实现方法,包括数据库的设计与表结构的定义,用户注册与登录的实现,留言的发布与展示的实现等。
通过对留言板系统的设计与实现进行细致分析,读者将能够了解留言板系统的整体架构和具体实现细节。
PHP简单留言本功能实现代码
PHP简单留⾔本功能实现代码本⽂实例为⼤家分享了PHP留⾔本功能的具体代码,供⼤家参考,具体内容如下index.php<?phperror_reporting(0); //关闭NOTICE提⽰require_once "conn.php"; $pagesize=5; //每页显⽰5条数据$sql="select count(*) from guestlist "; //选择数据库,计算符合条件的⾏数并返回⾏数$result= mysql_query($sql); //执⾏,如果成功则返回结果集(从数据库中找到所有的数据,返回条数)$row = mysql_fetch_row($result); //获得数组 Array[0]="数据库⾥的总条数"$infoCount =$row[0]; //获得总条数:取得数组中的值$row[0]="数据库⾥的总条数"$pageCount = ceil($infoCount/$pagesize); //获取总页数(总个数/每页的个数5)$currpage=empty ($_GET["page"])?1:$_GET["page"]; //如果当前页为空则定义page=1即$currpage=1反之亦然if($currpage>$pageCount) //如果输⼊的页数超过总页数则默认跳转到最后⼀页{$currpage=$pageCount;}><!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <!--此处添加了bootstrip样式--><link href="../dist/css/bootstrap.min.css" rel="external nofollow" type="text/css" rel="stylesheet" /><link href="css/index.css" rel="external nofollow" type="text/css" rel="stylesheet" /><script>function test(){var sum;if(document.frm.title.value==''){alert('请填写标题');return false;}else{sum =document.frm.title.value.length;if(sum<5 || sum>20){alert('标题长度 5-20个字符');return false;}}if(ername.value==''){alert('请填写⽤户⽹名');return false;}if(document.frm.content.value==''){alert("请填写内容");return false;}return true;}</script></head><body><div class="content"><h5 style="color: red;"><?php echo $infoCount;?>条留⾔</h5><br/><ul class="bt"><li>留⾔标题</li><li>⽤户⽹名</li><li>时间</li></ul><?php //从当前页开始向下取出5个$re= mysql_query("select * from guestlist order by id desc limit ".($currpage-1)*$pagesize.",".$pagesize);while($row= mysql_fetch_assoc($re)) //得到⼀⾏数据的数组,再执⾏则得到再下⼀⾏,如果得到是最后⼀⾏,那么再执⾏则返回false {><ul class="nr"><li><?php echo $row["title"];?></li><li><?php echo $row["username"];?></li><li><?php echo $row["addtime"];?></li><div class="lynr"><p><strong>留⾔内容:</strong></p><span><?php echo $row["content"];?></span> </div><?php}><hr style="width:800px"/><ul class="pagination"><!--上⼀页--><?phpfor($i=1;$i<=$pageCount;$i++){if($i==$currpage){echo "<li><a href=?page=".($i-1).">«</a></li>";}}><!--数字页--><?phpfor($i=1;$i<=$pageCount;$i++){if($i==$currpage){echo "<li ><a style='background-color:#EEEEEE'>$i</a></li>";}else{echo "<li><a href='?page=$i'>$i</a></li>";}}><!--下⼀页--><?phpfor($i=1;$i<$pageCount;$i++){if($i==$currpage){echo "<li><a href=?page=".($i+1).">»</a></li>";}}></ul><br/><ul></ul><hr/><strong style="color:red">发表留⾔</strong><form action="result.php" method="post" name="frm" onsubmit="return test()"><table cellpadding="0" cellspacing="0" ><tr><td >留⾔标题:</td><td><input type="text" name="title" autocomplete="off"/></td></tr><tr><td>⽹名:</td><td><input type="text" name="username" autocomplete="off"/></td></tr><tr><td>留⾔内容:</td><td><textarea name="content" cols="42" rows="5" autocomplete="off"/></textarea></td> </tr><tr><td></td><td><input class="btn" type="submit" name="submit" value="提交"/></td></tr></table></form></div></body>conn.php<?php$link = mysql_connect("localhost","root"," ");mysql_select_db("guestbook");mysql_query("set names utf-8");if(!$link){die("Connection failed: " . mysqli_connect_error());}//echo "链接成功";>result.php<?phperror_reporting(0); //关闭NOTICE提⽰require_once "conn.php";$title = $_REQUEST['title'];$username = $_REQUEST['username'];$content = $_REQUEST['content'];$content = str_replace("\n","<br>",str_replace(" "," ",$content)); //显⽰'空格'和'回车'$week = '星期'.mb_substr( "⽇⼀⼆三四五六",date("w"),1,"utf-8" ); $isok =mysql_query("insert into guestlist(title,username,content,addtime)values('$title','$username','$content','".date("Y-m-d H:i:s")." $week ')"); if($isok){echo "<script>alert('提交成功');location.href='index.php';</script>";}else {echo "<script>alert('提交失败');location.href='index.php';</script>";}>css/index.cssbody{margin:0;padding:0;}ul,li{list-style: none;margin:0;padding:0;}a{text-decoration: none;}.content{width:800px;margin:0 auto;}.bt{width:799px;height:20px;text-align: center;background:#EB9316;margin:0 0 5px 0;}.bt>li{float:left;width:265px;height:20px;text-align: center;line-height: 20px;font-size:13px;}.nr{float:left; /*如果不浮动后⾯的lynr会受影响*/width:799px;height:20px;text-align: center;background:#B9DEF0;}.nr>li{width:265px;height:20px;text-align: center;line-height: 20px;font-size:13px;}.lynr{float:left; /*如果不浮动会布局会乱*/width:800px;margin:1px 0 1px 0;}.content p{width:70px;height:50px;float:left;}.content span{display: block;width:710px;float:left;}td{width:80px;padding:5px 0;/*border: 1px solid #79ABFE;*/}td input,textarea{border: 1px solid #79ABFE;}/*tr{display:block; /*将tr设置为块体元素显⽰块状后就将其包围住了不是⼀个矩形了 }*/dist/css/bootstrap.min.css(⾃⼰下载)效果图:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
php实现留言板功能
php实现留⾔板功能这个⼩⼩的留⾔板功能适合班级内或者公司内部之间的讨论,对话和留⾔,⾮常的⽅便,更重要的是⽆需⽹络,对于公司管理层来说是⾮常乐于常见的,下⾯是这个留⾔板的写法:1 ⾸先是登录页⾯:1 <form action="chuli.php" method="post">2 <div style="margin-left: 500px; margin-top: 200px;3 height: 250px; width: 250px">/*为了把登录表放到页⾯中间,⽐较美观*/4 <h1>公司内部留⾔板</h1>5 <div style="margin-top: 20px">⽤户名:<input type="text" name="username"/></div><br/>6 <div>密 码:<input type="password" name="password"/></div><br/>7 <div><input type="submit" value="登录"/></div>8 </div>910 </form>2 登录页⾯完成后要进⼊登录处理页⾯了,也就是上⾯提交到的chuli.php1 <?php2 session_start(); // 登录之后要把所包含登录的页⾯连接起来,开启session3 include("DADB.class.php");45 $db=new DADB();67 $user=$_POST["username"];8 $pwd=$_POST["password"];910 $sql="select password from yuangong where username='{$user}'";1112 $arr=$db->Query($sql);1314 if($arr[0][0]==$pwd && !empty($pwd))15 {16 $_SESSION["username"]=$user;17 header("location:main.php");18 }19 else20 {21 echo"登录失败";22 }2324 ?>如图所⽰,是登录页⾯3.登录完成后是进⼊主页⾯,也就是显⽰⾃⼰收到的对话内容,下⾯是设计的数据库的表格和主页⾯的代码:<body><div><h3><a href="fabu.php">发布信息</a> <a href="tuichu.php">退出系统</a></h3> </div><br/><br/><h2>留⾔信息:</h2><table cellpadding="0" cellspacing="0" border="1" width="60%"><tr><td>发送⼈</td><td>接收⼈</td><td>发送时间</td><td>信息内容</td></tr><?phpsession_start();if(empty($_SESSION["username"])){header("location:login.php");}$user=$_SESSION["username"];include("DADB.class.php");$db=new DADB();$sql="select * from liuyan where recever='$user' or recever='all' ";$arr=$db->Query($sql);foreach($arr as $v){ $fjr=uname($v[1]);$jsr=uname($v[2]);echo"<tr><td>{$fjr}</td> //发送⼈和接收⼈要⽤到姓名,所以这⾥我们调⽤了⼀个⽅法<td>{$jsr}</td><td>{$v[3]}</td><td>{$v[4]}</td></tr>";}function uname($user) //运⽤了uname⽅法{global $db; //要想⽅法⾥⾯也可以⽤$db 这⾥⽤了全局变量if($user=="all"){return "所有⼈";}else{$sql1="select name from yuangong where username='{$user}'";$att=$db->Query($sql1);return $att[0][0];}}></table></body>4代码写到这⾥,⽐较重要的部分就完成了,下⾯是要进⼊发布信息页⾯了,相当于之前写的添加的页⾯,其处理页⾯也是和之前没什么区别的,差别在于现在的处理页⾯是在⽤户登录的情况下操作的,需要⽤session把所有的登录情况下的页⾯连接起来1 <h1>发布信息</h1>2 <a href="main.php">主页⾯</a>3 <br />4 <br />56 <?php7 session_start();8 if(empty($_SESSION["username"]))9 {10 header("location:login.php");11 exit;12 }1314 $user = $_SESSION["username"];1516 include("DADB.class.php");17 $db = new DADB();1819 $shaoyou = "select * from firend where me='{$user}'";20 $ahaoyou = $db->Query($shaoyou);2122 ?>2324 <form action="fabuchuli.php" method="post">25 <div>接收⼈:26 <select name="jsr">27 <option value="all">所有⼈</option>28 <?php29 foreach($ahaoyou as $v)30 {31 $name = uname($v[2]);32 echo "<option value='{$v[2]}'>{$name}</option>";33 }34 ?>35 </select>36 </div>37 <br />38 <div>39 信息内容:<textarea name="neirong"></textarea>40 </div><br />41 <input type="submit" value="发送" />42 </form>43 <?php44 function uname($user)45 {46 global $db;4748 if($user=="all")49 {50 return "所有⼈";51 }52 else53 {54 $sql1 = "select name from yuangong where username='{$user}'";55 $att = $db->Query($sql1);5657 return $att[0][0];58 }59 }60 ?>61 </body>//这是发布页⾯的代码和添加页⾯的代码相似<?php<?phpsession_start();$re=$_POST["jsr"];$comment=$_POST["neirong"];$time=date("Y-m-d H:i:s"); //获取当前时间$_SESSION["username"]=$user;include("DADB.class.php");$db=new DADB();$sql="insert into liuyan VALUES ('','{$user}','{$jsr}','{$time}','{$comment}',false)";if($db->Query($sql,0)){header("location:main.php");}else{echo"发布失败";}>>⼀个简单的留⾔板已经完成了,退出的时候需要清除session 并且返回到登录页⾯//退出页⾯代码<?phpsession_start();unset($_SESSION["username"]);header("location:login.php");>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原创单文件留言板gbk版看了视频教程之后写的留言版基本涵盖了大部分php基础知识点,变量,常量,循环(if,switch),变量作用域,session,函数,递归函数,安全处理,类,构造函数,静态变量,数据库连接、增加、查询、更新、删除html的知识点隐藏表单js表单验证页面定时重定向 css悬浮实现功能:增加留言留言删除翻页管理员修改密码基于一个页面实现留言板的完整功能注释比较详细用户名:admin密码:123456<?phpsession_start(); //启动会话/** 单文件留言本* 请注明来自于*///变量定义、赋值$db_host = 'localhost:3306'; //设置数据库主机端口号一般为localhost:3360 通常不需修改$db_user = 'root'; //设置数据库用户名$db_pass = 'liujie'; //设置数据库密码$db_name = 'test'; //设置数据库名称$db_char = 'GBK'; //设置数据库字符集默认GBK 通常情况不需修改//定义常量define('Per_page',6); //定义每页记录数?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" xml:lang="zh" lang="zh" ><head><meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>k 留言板</title><style><!--body{padding:0;margin:0;height:100%;overflow-y:auto;}#contain{width:900px;margin:0 auto;}#hd{width:400px;margin:50px auto;}.forms{margin:60px auto;width:400px;color:green;font-size:20px;}.list{width:900px;margin:20px auto;}.current{color:green;font-size:20px;}#showmsg {display:none; top:100px; left:300px; width:600px;height:300px;position:fixed;background:#CCF;padding:50px;opacity: 0.9;} /* IE并不认识fixed,而FF认识*/* html #showmsg {position:absolute;} /* 这个只有IE认识*/--></style><script language="javascript"><!--//表单验证function CheckForm(){if(ername.value==""){alert("请填写用户名");ername.focus();return false;}if(myform.title.value==""){alert("请填写标题");myform.title.focus();return false;}if(myform.msg.value.length<5){alert("留言需要大于5个字符");myform.msg.focus();return false;}}function CheckPassword(){if(repassform.admin_pass.value.length<6){alert("密码长度大于6");repassform.admin_pass.focus();return false;}if(repassform.admin_pass.value != repassform.admin_pass2.value){ alert("密码不相同");repassform.admin_pass2.focus();return false;}}//全选function checkAll(name){var el = document.getElementsByTagName('input'); var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name)) {el[i].checked = true;}}}//取消全选function clearAll(name){var el = document.getElementsByTagName('input'); var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name)) {el[i].checked = false;}}}//反选function disAll(name){var el = document.getElementsByTagName('input');var len = el.length;for(var i=0; i<len; i++){if((el[i].type=="checkbox") && (el[i].name==name) && el[i].checked == true) {el[i].checked = false;}else{el[i].checked = true;}}}//--></script></head><body><div id="contain"><div id="hd"><h1>留言板</h1><a href="?">首页</a> <a href="?do=manage">管理</a></div><div id="showmsg"><p id="info" name="info"></p><p id="tip" name="tip"></p></div><script language="javascript"><!--//跳转function Redirect(Url){window.location = Url;}var i = 0;//显示倒计时function dis(time){document.getElementById("tip").innerHTML = "" + (time - i) + "秒后跳转"; i++;}//显示提示,定时跳转function ShowMsg(msg,time,Url){document.getElementById("showmsg").style.display= "block" ; document.getElementById("info").innerHTML = msg;if(time>0 && Url != ''){timer=setInterval("dis('"+time+"')", 1000);//显示时间timer=setTimeout("Redirect('"+Url+"')",time * 1000); //跳转}}//--></script><?php//实例化基础类$base = new base($db_host,$db_user,$db_pass,$db_name,$db_char);//定义基础类class base{private static $conn ;var $err ;//php5 构造函数初始化连接function__construct($db_host,$db_user,$db_pass,$db_name,$db_char='GBK'){/*连接数据库& 设置数据库字符集*/@ $dbo = mysql_connect($db_host,$db_user,$db_pass) or die('请检查是否数据库密码是否正确。
');mysql_select_db($db_name,$dbo) or die ('数据库不存在,请确认是否正确安装');mysql_query("set names '$db_char'",$dbo);$this->conn = $dbo;}//php4 构造函数function base($db_host,$db_user,$db_pass,$db_name,$db_char='GBK'){$this->__construct($db_host,$db_user,$db_pass,$db_name,$db_char);}//增加留言function add(&$data){$username = $data['username']?$data['username']:'匿名';$title = $data['title'];$msg = $data['msg'];$sql = sprintf("insert into `liuyan`values('','%s','%s','%s','%s')",$username,$title,$msg,time());mysql_query($sql,$this->conn);return mysql_insert_id($this->conn);}//留言列表function lists($p=0){$c = 0;if($p>0)$c=($p-1) * Per_page;$limit = " limit ".$c.",".Per_page;$where = '1';$r = '';$sql = sprintf("SELECT * from `liuyan` where '%s' $limit",$where.$limit); $query = mysql_query($sql,$this->conn);while($row = mysql_fetch_array($query)){$r[] = $row;}return $r;}//统计分页function page(){$sql = "select count(id) from `liuyan`"; $query = mysql_query($sql,$this->conn); $row = mysql_fetch_row($query); $page['totals'] = $row[0];$page['nums'] = ceil($row[0]/Per_page); return $page;}//删除留言function del($id){$this->check();if(is_array($id)){$ids .= implode(',',$id);}else{$ids = $id;}$sql = "delete from `liuyan` where id in($ids)";mysql_query($sql,$this->conn);return mysql_affected_rows($this->conn);}//登录function login($admin_name,$admin_pass){$pass = md5($admin_name.$admin_pass.$admin_name);$sql="select * from `admin` where `name`='$admin_name' and `pass` = '$pass' ";$query = mysql_query($sql,$this->conn);$row = mysql_fetch_array($query);if($row['id']>0){$_SESSION=$row;ShowMsg('登录成功,欢迎管理员'.$_SESSION['name'],3,'?do=manage');}else{ShowMsg('登录失败'.$_SESSION['name'],3,'?do=login');}}//密码修改function repass($admin_name,$admin_pass,$admin_id){$this->check();$pass = md5($admin_name.$admin_pass.$admin_name);$sql = "UPDATE `admin` set name='$admin_name' , pass='$pass' where id=$admin_id";mysql_query($sql,$this->conn);return mysql_affected_rows($this->conn);}//退出function logout(){$this->check();session_destroy();}//检查是否登录function check(){if($_SESSION['name'] && $_SESSION['pass']){//ShowMsg('登录成功,欢迎管理员'.$_SESSION['name'],3,'?do=manage');}else{ShowMsg('请先登录'.$_SESSION['name'],3,'?do=login');}}function getErr(){return $this->err;}function setErr(){$this->err = mysql_error($this->conn); }}//安全处理递归函数function Post_check($arr){if(is_array($arr)){foreach($arr as $n=>$k){$data[$n] = Post_check($k);}}else{return addslashes(trim($arr));}return $data;}//定时跳转function ShowMsg($msg,$time=0,$url=''){echo "<script>ShowMsg('$msg',$time,'$url');</script>"; exit;}?><?php//流程处理不同操作显示不同界面$do = $_REQUEST['do'];switch($do){//添加留言case 'add':if($_POST['do'] == 'add'){$data = Post_check($_POST);if(@$base->add($data)>1){echo '留言添加成功';}else{echo $base->err;}}break;//删除留言case 'del':$data = Post_check($_POST);$affected_rows=$base->del($data['id']);if($affected_rows>0){echo '成功删除'.$affected_rows.'行'.'<a href="?do=manage">返回</a>'; }else{echo '删除失败';}break;//管理员修改密码case 'repass':$data = Post_check($_POST);$r = $base->repass($data['name'],$data['admin_pass'],$data['id']); if($r){echo '密码修改成功';}else{echo '密码修改失败';}break;//管理员退出登录case 'logout':$base->logout();ShowMsg('成功退出登录'.$_SESSION['name'],3,'?do=');break;//管理员登录case 'login':if($_POST['admin_name'] && $_POST['admin_pass']){$data = Post_check($_POST);$base->login($data['admin_name'],$data['admin_pass']);}?><!--登录部分--><div class="forms" ><table><form action="" method="post" name="myform" id="myform"onsubmit="return CheckForm();"><tr><td><label for = "admin_name">管理员:</label><input type="text" id="admin_name" name="admin_name"/></td></tr><tr><td> </td></tr><tr><td><label for = "admin_pass">密 码:</label><inputtype="password" id="admin_pass" name="admin_pass"/></td></tr><tr><td> </td></tr><tr><td colspan="2"><input type= "submit" value = "登录" /> </form></td></tr></table></div><!--登录部分--><?php//管理留言break;case 'manage':$base->check();$p = intval($_GET['p']);$lists = $base ->lists($p);if(!$lists){echo '留言为空';}else{?><!--修改密码--><div class='admin'><form action="" method="post" name="repassform" id="repassform" onsubmit="return CheckPassword();"><input type = "hidden" id ="do" name = "do" value = "repass" /><input type = "hidden" id ="id" name = "id" value = "<?php echo$_SESSION['id'];?>" /><input type = "hidden" id ="name" name = "name" value = "<?php echo $_SESSION['name'];?>" /><table><tr><td>管理员:<?php echo$_SESSION['name'];?></td><td> <a href="?do=logout">退出</a> </td><td>新密码:<input type="password" id="admin_pass"name="admin_pass"/></td><td> </td><td>重复密码:<input type="password" id="admin_pass2"name="admin_pass2"/></td><td>   ;</td><td><input type= "submit" value = "修改密码" /></td></tr></table></form></div><!--修改密码--><!--管理列表--><div class="list"><form action="" method="post"><input type = "hidden" id ="do" name = "do" value = "del" /><table width="880px"><tr><td width="5%">选择</td><td width="5%">id</td><tdwidth="15%">name</td><td width="15%">title</td><tdwidth="40%">msg</td><td width="15%">time</td></tr><?php foreach($lists as $row){?><tr><td><input type="checkbox" name="id[]" id="id[]" value="<?php echo $row['id']?>"/></td><td><?php echo $row['id'];?></td><td><?php echo $row['name'];?></td><td><?php echo $row['title'];?></td><td><?php echo $row['msg'];?></td><td><?php echodate("Y-m-d",$row['addtime']);?></td></tr><?php}?><tr><td width="5%"><input type="button" value="全选" onclick="checkAll('id[]')" /></td><td width="5%"><input type="button" value="取消"onclick="clearAll('id[]')" /></td><td width="5%"><input type="button"value="反选" onclick="disAll('id[]')" /></td><td width="5%"><input type="submit" value="删除"/></a></td></tr></table></form><?PHP}//分页$baseurl = '?do=manage&p=';$pages = $base->page();echo '共'.$pages['totals'].'条'.$p.'/'.$pages['nums'].'页';echo "<a style='margin:0 10px;' href='".$baseurl."0' target='_self'>首页</a>";for($i=0;$i<3;$i++){$class='';$link = 1;if($p-1>0)$link =$p-1;$link+=$i;if($link>$pages['nums'])break;if($link==$p){$class="class='current'";}echo "<a style='margin:0 10px;' $class href='".$baseurl.$link."' target='_self'>".$link."</a>";}echo "<a style='margin:0 10px;' href='".$baseurl.$pages[nums]."' target='_self'>末页</a>";?></div><!--管理列表--><?phpbreak;?><?php//默认显示留言列表default :$p = intval($_GET['p']);$lists = $base ->lists($p);if(!$lists){echo '留言为空';}else{?><div class="list"><!--留言列表--><table width="880px"><tr><td width="5%">id</td><td width="15%">name</td><tdwidth="15%">title</td><td width="50%">msg</td><tdwidth="15%">time</td></tr><?php foreach($lists as $row){?><tr><td><?php echo $row['id'];?></td><td><?php echo$row['name'];?></td><td><?php echo $row['title'];?></td><td><?php echo $row['msg'];?></td><td><?php echodate("Y-m-d",$row['addtime']);?></td></tr><?php}?></table><!--留言列表--><?PHP}//分页部分$pages = $base->page();echo '共'.$pages['totals'].'条'.$p.'/'.$pages['nums'].'页';echo "<a style='margin:0 10px;' href='?p=0' target='_self'>首页</a>"; //显示当前页,上一页下一页并自定义样式for($i=0;$i<3;$i++){$class='';$link = 1;if($p-1>0)$link =$p-1;$link+=$i;if($link>$pages['nums'])break;if($link==$p){$class="class='current'";}echo "<a style='margin:0 10px;' $class href='?p=$link'target='_self'>".$link."</a>";echo "<a style='margin:0 10px;' href='?p=$pages[nums]' target='_self'>末页</a>";?></div><div class="forms" ><form action="" method="post" name="myform" id="myform"onsubmit="return CheckForm();"><input type = "hidden"id ="do" name = "do" value = "add" /><label for = "username">用户</label><input id="username"name="username"/><br/><label for = "title">标题</label><input id="title" name="title"/><br/><label for = "msg">信息</label><textarea id="msg"name="msg"></textarea><input type= "submit" value = "提交" /></form></div><?phpbreak;</div> </body> </html>。