PHP+MYSQLY留言板
- 格式:doc
- 大小:42.00 KB
- 文档页数:10
php+mysql最简单的留⾔板学完了记得动⼿操作。
(未过滤)<html><body><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><form method = "post" action = "post.php">欢迎来到我的留⾔板!<br>name:<input type = "text" name = "name"><br>email:<input type = "text" name = "email"><br>content:<br><textarea rows="10" cols="20" name="content"></textarea><input type = "submit"></form></body></html><?phpheader("Content-type: text/html; charset=utf-8");$con = mysql_connect("***","***","***");if (!$con){die('Could not connect: ' . mysql_error());}//connect tablemysql_query("SET NAMES utf8");mysql_select_db("message",$con);$sql = "CREATE TABLE message(id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),name varchar(15),email varchar(15),content varchar(100))";//mysql_query($sql,$con);$name = $_POST['name'] ;$email = $_POST['email'];$content = $_POST['content'];$sql1 = "INSERT INTO message(name,email,content)VALUES( '$name', '$email','$content')";mysql_query($sql1,$con);echo "<table border='1'><tr><th>id</th><th>name</th><th>email</th><th>content</th></tr>";$result = mysql_query("SELECT * FROM message");while($row = mysql_fetch_array($result)){echo "<tr>";echo "<td>" . $row['id'] . "</td>";echo "<td>" . $row['name'] . "</td>";echo "<td>" . $row['email'] . "</td>";echo "<td>" . $row['content'] . "</td>";echo "</tr>";}echo "</table>";mysql_close($con);?>中途遇到⼀个bugmysql_fetch_array(): supplied argument is not a valid MySQL result resource定位到该函数。
php+mysql留言板系统「完整代码及详解」php+mysql留言板系统【完整代码及详解】主要页面input.html为初始页insert.php为把输入内容送入数据库show.php显示留言板内容change.php修改留言板内容的界面del.php删除留言板内容change_ok.php修改留言板内容并送入数据库数据库的创建CREATE DATABASE GBOOK;CREATE TABLE `gbook` (`id` INT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 10 ) NOT NULL ,`sex` TINYINT( 1 ) UNSIGNED NOT NULL ,`email` VARCHAR( 255 ) NOT NULL ,`info` TEXT NOT NULL ,`ip` VARCHAR( 15 ) NOT NULL ,`time_at` DATETIME NOT NULL)input.html 页面留言版insert.php 页面$mysql_server_name = "localhost";$mysql_username = "root";$mysql_password = "123456";$mysql_database = "gbook";$ip = getenv('REMOTE_ADDR');$conn = mysql_connect("localhost","root","123456");mysql_select_db("gbook");$sql = "INSERT INTO `gbook` ( `id` , `name` , `sex` , `email` , `info` , `ip` , `time_at` )VALUES (NULL , '$name', '$sex', '$email', '$info', '$ip', NOW( ))";$result = mysql_query($sql,$conn);$id = mysql_insert_id();mysql_close($conn);?>留言成功去留言页show.php 页面$mysql_server_name = "localhost";$mysql_username = "root";$mysql_password = "123456";$mysql_database = "gbook";$sql = "SELECT * FROM gbook ORDER BY 'id' DESC"; //排序后留言的在前面显示$conn = mysql_connect($mysql_server_name,$mysql_username,$m ysql_password);mysql_select_db($mysql_database,$conn);$result = mysql_query($sql);while($row = mysql_fetch_row($result)) { // ----if语句判断男女------if($row[2]==1){ $gender = '男';}else{ $gender = '女'; }?>()">[修改] ">[删除]。
<?php/*** 一个用来访问MySQL的类* 仅仅实现演示所需的基本功能,没有容错等* 代码未作修改,只是把注释翻译一下,加了点自己的体会*/class DataAccess {var $db; //用于存储数据库连接var $query; //用于存储查询源//! 构造函数./*** 创建一个新的DataAccess对象* @param $host 数据库服务器名称* @param $user 数据库服务器用户名* @param $pass 密码* @param $db 数据库名称*/function __construct($host,$user,$pass,$db) {$this->db=mysql_pconnect($host,$user,$pass); //连接数据库服务器mysql_select_db($db,$this->db); //选择所需数据库//特别注意$db和$this->db的区别//前者是构造函数参数//后者是类的数据成员}//! 执行SQL语句/*** 执行SQL语句,获取一个查询源并存储在数据成员$query中* @param $sql 被执行的SQL语句字符串* @return void*/function fetch($sql) {$this->query=mysql_unbuffered_query($sql,$this->db); // Perform query here}//! 获取一条记录/*** 以数组形式返回查询结果的一行记录,通过循环调用该函数可遍历全部记录* @return mixed*/function getRow () {if ( $row=mysql_fetch_array($this->query,MYSQL_ASSOC) )//MYSQL_ASSOC参数决定了数组键名用字段名表示return $row;elsereturn false;}}?>下面再来介绍一下Model类。
【转帖】教你学会用PHP写带MYSQL的简单留言本通讯录默认分类2007-11-24 16:47:15 阅读297 评论1 字号:大中小订阅epie测试备注:测试环境php5+mysql51.edit.php,del.php$id无法正常得到,要用$id = $_GET['id'];2. mysql5下创建数据库的语句SQL代码Create TABLE `addr_list` (`id` int(10) unsigned NOT NULL auto_increment,`name` varchar(10) NOT NULL,`sex` tinyint(1) NOT NULL,`mobi` varchar(11) NOT NULL,`email` varchar(50) NOT NULL,`addr` varchar(50) NOT NULL,PRIMARY KEY (`id`) (转帖者留言:注意这一行代码后面一定不要习惯性的加上一个“,”)) ENGINE=MyISAM DEFAULT CHARSET=utf8;3.下面程序虽然有很多bug,但是对新手入门非常有帮助,建议阅读。
30分钟学会用PHP写带数据库的简单通讯录引用上篇文章的开场白:我接触PHP也不是很久,所以有什么不足的地方,欢迎各位指正,让大家见笑了。
这篇小教程的对象是PHP初学者,都是些最简单、最基本的东西,因此高手们可以略过哦。
为了让各位初学者提起兴趣、尽快入门,这里写的是将是最简单,最基本的PHP程序,相信你只要有一点点的PHP基础知识,10分钟之内就能把它学会。
没有PHP基础知识也没有关系,只要耐心的看,学会它也不会超过一个小时的。
我写这篇文章的目的是,和大家一起共同学习、共同进步,然后将PHP初学者们对PHP的恐惧心理驱赶到十万八千里之外,让大家增强自学PHP的信心,其实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...";。
第一部分∙工具:∙DW \ EditPlus∙php、mysql服务器步骤/方法首先是确定自己的留言板需求.例如:名字,邮件及留言内容.一. 建立一个数据库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><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('提交成功!返回首页。
教程连载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的留言板的设计与实现下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于PHP的留言板的设计与实现1. 简介在互联网时代,留言板作为一种简单而有效的交流工具,被广泛应用于各种网站和社区。
案例留言板设计一、概述现在很多网站都考虑到了与用户之间的互动交流,于是出现了各种各样的留言板。
在留言板中,用户可以看到前面使用者的留言,也可以留下自己的言论。
对商务网站,用留言板可以了解用户的需求和意见。
现在,网上也有很多免费的留言板程序,但亲自动手做一个,能体会其中的奥秘,应该是一个不错的主意。
二、系统架构留言板的功能可大可小,小则简单地让用户浏览留言和写一个短篇留言,具有回复的功能;大则可以做到能按不同讨论分门别类的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标记作为字符串引入。
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留言板系统总结与收获1.引言1.1 概述留言板系统是一种常见的网页应用程序,它允许用户在网站上发表留言、评论和交流。
随着互联网的普及和发展,留言板系统在各种网站和社交平台中得到广泛应用。
PHP作为一种流行的服务器端脚本语言,为开发留言板系统提供了强大的支持和灵活的功能。
本文将对PHP留言板系统进行综述与总结,并分享在设计与实现过程中的一些经验和收获。
首先,我们会简要介绍留言板系统的基本概念和功能。
接着,我们会详细讨论留言板系统的设计与实现,包括数据库的设计、用户管理、留言发布与显示等关键方面。
同时,我们也会探讨留言板系统的特点和优势,如安全性、扩展性和用户友好性等。
在实践过程中,我们遇到了一些挑战和问题,但也获得了一些重要的经验和收获。
通过开发留言板系统,我们深入理解了PHP的应用以及与数据库的交互,提高了对前端与后端协同工作的能力。
同时,我们也学会了如何有效地处理用户数据,增强了对网站安全的认识。
在本文的结尾,我们将对整个留言板系统进行总结,并总结我们在设计与实现过程中的经验和教训。
我们相信这篇文章将对正在开发或学习留言板系统的开发者们有所帮助,也希望读者能够从中获得一些启示和灵感。
让我们一起深入研究和探索PHP留言板系统的设计与实现吧!1.2文章结构1.2 文章结构本文将以PHP 留言板系统为研究对象,对其设计与实现进行探讨,并在此基础上分析留言板系统的功能与特点。
文章将分为引言、正文和结论三个部分。
引言部分将概述本文的主要内容和目的,介绍留言板系统的背景和意义,并说明文章的结构安排。
正文部分将详细讲解留言板系统的设计与实现。
首先,将介绍留言板系统的基本构成和必要的功能模块,例如用户管理模块、留言管理模块等。
然后,将详细阐述每个模块的设计思路和实现方法,包括数据库的设计与表结构的定义,用户注册与登录的实现,留言的发布与展示的实现等。
通过对留言板系统的设计与实现进行细致分析,读者将能够了解留言板系统的整体架构和具体实现细节。
PHP【留言板】案例教程-前言网络上各种各样的PHP教程和各种各样的留言板都是铺天盖地的,战地为什么要自己写一个这样的PHP留言板教程呢?问的好啊!鼓掌。
首先战地写这个PHP教程的目的不是为了做一个留言板,如果你需要一个留言板的话我建议你去Google搜索一下免费的、功能强大的、功能齐全的、漂亮的到处都是。
目的是:从一个简单的实际的案例出发,来让想学习PHP的兄弟姐妹们进入PHP的世界。
需要说明的是,既然是实际的案例教程,各种各样的知识都会涉及到(以保证各位遇到更多的问题),阅读这个教程的时候你最好了解一点Html和javascript的知识,因为在教程中将不作为重点来说。
因为我们是PHP教程。
好了,现在说说我们将要设计的知识和这个留言板将要实现的功能:功能需求:利用PHP+Mysql数据库制作一个基本的留言板能够让客户进行留言,管理员可以对留言进行修改、删除、回复等操作。
涉及到的技术:PHP后台处理程序、javacript客户端技术、Mysql数据库的基本操作,另外战地假设你已经架设好了PHP+Mysql的开发环境。
如果需要配置开发环境的帮助,请参考:《Windows平台下PHP环境配置之Apahce安装篇》、《Windows平台下PHP环境的配置之Mysql篇》、《Windows平台下PHP环境配置之PHP安装篇》等相关文章。
该案例教程中所涉及的PHP内容:1.PHP程序的基本写法和注意事项;2.变量的定义和销毁;3.PHP数组的定义和基本使用方法;4.字符串的处理;5.客户输入信息的验证;6.PHP编程语言的流程控制;7.session会话的基本应用;8.PHP链接Mysql和对Mysql的增删改查;9.PHP+mysql的分页技术和原理(重点)。
……大部分在利用PHP+Mysql进行Web编程过程中所常用的方法。
3 4 5 6 7 `guest_id`VARCHAR(11)NOT NULL COMMENT'发布人id', `post`TEXT NOT NULL COMMENT'发布内容',`post_time`VARCHAR(14)NOT NULL COMMENT'发布时间', PRIMARY KEY(`id`))ENGINE= MYISAM存储留言客户信息表guest创建脚本:1 2 3 4 5 6 7 CREATE TABLE`guestbook`.`guest`(`id`INT(11)NOT NULL COMMENT'客户自增id',`name`VARCHAR(16)NOT NULL COMMENT'客户名称', `email`VARCHAR(60)NULL COMMENT'电子信箱',`qq`VARCHAR(11)NULL COMMENT'QQ号码', PRIMARY KEY(`id`))ENGINE= MYISAM存储回复信息表:revert创建脚本:1 2 3 4 5 6 7 CREATE TABLE`guestbook`.`revert`(`id`INT(11)NOT NULL AUTO_INCREMENT COMMENT'自增id', `post_id`VARCHAR(11)NOT NULL COMMENT'留言id',`revert`TEXT NOT NULL COMMENT'回复内容',`revert_time`VARCHAR(14)NOT NULL COMMENT'回复时间', PRIMARY KEY(`id`))ENGINE= MYISAM可以看出在post表中存储了客户的Id(其实这个设计本身不适合咱们系统,咱们应该存储的是用户的名称,但是为了接触更多的PHP函数还是这样设计吧),通过这个Id可以和客户表guest进行关联,revert表中存储了post_id顾名思义就是留言表中的主键Id,这样我们也可对这两表进行关联操作。
建立数据库bbs,在数据库bbs中建立表message,如下:CREA TE TABLE `message` (`id` tinyint(1) NOT NULL auto_increment,`user` varchar(25) NOT NULL,`title` varchar(50) NOT NULL,`content` tinytext NOT NULL,`lastdate` date NOT NULL,PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;1、(保存为conn.PHP)<?php$conn = @ mysql_connect("127.0.0.1","root","") or die("数据库链接错误");mysql_select_db("bbs",$conn);mysql_query("set names 'GBK'"); //使用GBK中文编码;function htmtocode($content) {$content = str_replace("\n", "<br>", str_replace(" ", " ", $content));return$content;}//$content=str_replace("'","‘",$content);//htmlspecialchars();?>注释:替换输入内容中输入的回车和空格,写入这个函数后,在list.php中的内容输出语句写为:Echo <?php echo htmtocode($row[content]);?>function htmtocode($content) {$content = str_replace("\n", "<br>", str_replace(" ", " ", $content));return$content;2、(保存为add.php)<?phpinclude("conn.php");include("head.php");if($_POST[submit]){$sql="insert into messagevalues('','$_POST[user]','$_POST[title]','$_POST[content]',now())";if(mysql_query($sql)) {echo"<center>发布成功<center/>";}}?><SCRIPT language=javascript>function CheckPost(){ if (er.value==""){ alert("请填写用户名");er.focus();return false;}if (myform.title.value.length<5)//这里的5个字符是5个汉字或者是5个字母。
?>2、header.php(公用头部文件)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>银子留言板V ersion 1.0</title></head><link href="css.css" rel="stylesheet" type="text/css" /><body><div id="head"><div id="head_l"><ul><li><a href="index.php">偶要看留言</a></li><li><a href="post.php">偶要发表</a></li><?phpsession_start();if($_SESSION["key"]==1){//如果获取的SESSION为1则显示管理项?><li><a href="adminexit.php">退出管理</a></li><?}else{?><li><a href="admin.php">偶要管理</a></li><?}?></ul></div><div id="head_r">银子留言板Version 1.0</div></div>3、footer.php(公用底部文件)<?php$counterFile="conter.xml";function displayCounter($counterFile){$fp = fopen($counterFile,"rw");$num = fgets($fp,5);$num += 1;print "<div id=\"footer\">银子留言板Version 1.0 您是第 "."$num"." 位无聊的银</div>";exec("rm -rf $counterFile");exec("echo $num > $counterFile");}if(!file_exists($counterFile)){exec("echo 0 > $counterFile");}displayCounter($counterFile);?></body></html>4、index.php(首页)<?phprequire_once("conn.php");require_once("header.php");session_start();//分页代码开始$pagesize = 10;//设置每页显示条数$rs = mysql_query("select count(*) from lo");//取得记录总数,计算总页数用$myrow = mysql_fetch_array($rs);$numrows = $myrow[0];//计算总记录$pages = intval($numrows/$pagesize);if($numrows%$pagesize)$pages++;//设置页数if(isset($_GET['page'])){$page = intval($_GET['page']);}else{$page = 1;//设为第一页}$offset = $pagesize*($page-1);//计算记录偏移量//分页代码结束$sql = "select id,username,sex,qq,email,info,ip,DA TE_FORMA T(submit_time, '%Y年%m月%d 日%T' ) from lo order by id desc limit $offset,$pagesize";//用到了DA TE-FORMAT格式化日期$result = mysql_query($sql);$num = mysql_num_rows($result);if($num>0){while($row = mysql_fetch_array($result)){//echo print_r($row);if($row[2]=="男")//这个使性别改成你想要的名称^_^{$sex = "帅锅";}else{$sex = "美女";}?><div id="show"><p class="num">第[<?= $row[0] ?>] 条留言<p><p class="unline">留言人:<span class="blue"><?= $row[1]?></span> 性别:<?= $sex ?> 留言时间:<?= $row[7] ?> <? if($row[3]) {?> <a href="/msgrd?V=1&Uin=<?=$row[3] ?>&Site=&Menu=yes"><img src="img/qq.gif" alt="<?= $row[3]?>" /></a><? } ?><? if($row[4]){ ?> <a href="mailto:<?= $row[4] ?>"><img src="img/email.gif" alt="<?= $row[4]?>" /></a> <? }?><? if($_SESSION["key"]==1){ ?> IP:<?= $row[6] ?> <a href="update.php?wuleying&id=<?= $row[0]?>">更改</a> <a href="delete.php?wuleying&id=<?= $row[0]?>">删除</a><?}?></a></p><p class="blue">留言内容:</p><div id="show_info"><?= nl2br(htmlspecialchars($row[5])) ?></div></div><?php}}else{echo "<div id=\"show\">无数据......</div>";}?><div id="show_page"><?php$first=1;$prev=$page-1;$next=$page+1;$last=$pages;if($page==1&&$pages>1){echo "首页 | ";echo "上一页 | ";echo "<a href=\"index.php?page=".$next."\">下一页</a> | ";echo "<a href=\"index.php?page=".$last."\">尾页</a> | ";}elseif($page>=1&&$page!=$pages&&$num>0){echo "<a href=\"index.php?page=".$first."\">首页</a> | ";echo "<a href=\"index.php?page=".$prev."\">上一页</a> | ";echo "<a href=\"index.php?page=".$next."\">下一页</a> | ";echo "<a href=\"index.php?page=".$last."\">尾页</a> | ";}elseif($page==$pages&&$page!=1){echo "<a href=\"index.php?page=".$first."\">首页</a> | ";echo "<a href=\"index.php?page=".$prev."\">上一页</a> | ";echo "下一页 | ";echo "尾页 | ";}elseif($page==$pages){echo "首页 | ";echo "上一页 | ";echo "下一页 | ";echo "尾页 | ";}else{echo "首页 | ";echo "上一页 | ";echo "下一页 | ";echo "尾页 | ";}?>共 <span><?= $pages ?></span> 页 | 当前第 <span><?= $page ?></span> 页 | 共 <span><?=$numrows ?></span> 条留</div><?phpmysql_close();?><?phprequire_once("footer.php");?>5、post.php(提交留言页面)<?require_once("header.php");?><div id="input"><form method="post" action="input.php" name="form1"><h1>提交留言</h1><p>姓名:<input type="text" name="name" size="20" class="y" /> </p><p>性别:<input name="sex" type="radio" value="男" checked/> 帅锅 <input type="radio" name="sex" value="女"/> 美女</p><p>Q Q:<input type="text" name="qq" class="y" /> (可选填)</p><p>Email:<input type="text" name="email" class="y" /> (可选填)</p><p>留言内容:</p><p><textarea name="info" rows="5" cols="40"></textarea></p><p class="cen"><input type="submit" value="偶填好了" /><input type="reset" value="偶要重写"></p><p class="cen1">银子留言板Version 1.0</p></form></div></body></html>6、input.php(插入留言)<?phprequire_once("conn.php");$username = $_POST['name'];$sex = $_POST['sex'];$qq = $_POST['qq'];$email = $_POST['email'];$info = $_POST['info'];if (strrpos($username,"<")!==false || strrpos($username,">")!==false||strrpos($username,"@")!==false||strrpos($username,"\"")!==false ||strrpos($username,"'")!==false||strrpos($username,"_")!==false){echo "<script>alert('名称不能有特殊字符!');location.href='post.php';</script>";exit();}if (!ereg("^[0-9]{0,}$",$qq))//用正则检查QQ格式{echo "<script>alert('OICQ信息有错误!必须是数字!');location.href='post.php';</script>";exit();}if($email){//如果填写了邮箱就用正则检查邮箱格式if (!ereg("^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$email)){echo "<script>alert('email格式不正确!');location.href='post.php';</script>";exit();}}if(!$username){echo "<script>alert('名称不能为空哦!');location.href='post.php';</script>";exit();}elseif(!$info){echo "<script>alert('留言不能为空哦!');location.href='post.php';</script>";exit();}else{$ip = getenv('REMOTE_ADDR');//获取客户端IP地址$sql = "insert into lo (username,sex,qq,email,info,ip,submit_time) values ('$username','$sex','$qq','$email','$info','$ip',NOW())";$result = mysql_query($sql);mysql_close();echo "<script>alert('提交成功!返回首页');location.href='index.php';</script>";}?>7、update.php(修改留言页)<?phpsession_start();require_once('conn.php');require_once('header.php');if($_SESSION["key"]==1){$id = $_GET['id'];$sql = "select * from lo where id= ".$id;$result = mysql_query($sql);$row = mysql_fetch_array($result);?><div id="update"><form action="updatepost.php?wuleying&id=<?= $row[0] ?>" method="post"> <h1>修改留言</h1><p>姓名:<input type="text" value="<?= $row[1]?>" name="name" class="y"></input></p><p>留言:</p><p><textarea name="info" rows="5" cols="35"><?= $row[5] ?></textarea></p><p class="cen"><input type="submit" value="偶要修改" /></p><p class="cen1">银子留言板Version 1.0</p></form><div><?php}else{header('location:index.php');}?>8、updatepost(修改提交页)<?phprequire_once('conn.php');$username = $_POST['name'];$info = $_POST['info'];$id = $_GET['id'];//echo $id;$sql = "update lo set username= '".$username."',info='".$info."' where id=".$id; mysql_query($sql);echo "<script>alert('修改成功!');location.href='index.php';</script>";?>9、delete.php(删除留言页)<?phpsession_start();require_once('conn.php');$id=$_GET['id'];if($_SESSION["key"]==1){$sql = "delete from lo where id=".$id;mysql_query($sql);echo "<script>location.href='index.php'</script>";}else{header('location:index.php');}?>10、admin.php(管理登录页)<?phprequire_once('conn.php');require_once('header.php');?><div id="admin"><form method="post" action="adminpost.php"><h1>管理员登录</h1><p>姓名: <input type="text" name="name" size="20" class="y" /> </p><p>密码: <input type="password" name="password" size="20" class="y" /> </p><p class="cen"><input type="submit" value="管理员登录" /></p><p class="cen1">银子留言板Version 1.0</p></form></div>11、adminpost.php(管理验证页)<?phpsession_start();require_once('conn.php');$name = $_POST['name'];$password = $_POST['password'];$sql = "select * from admin where name='".$name."'";$result = mysql_query($sql);$num = mysql_num_rows($result);if (strrpos($name,"<")!==false || strrpos($name,">")!==false||strrpos($name,"@")!==false||strrpos($name,"\"")!==false||strrpos($na me,"'")!==false||strrpos($name,"_")!==false){echo "<script>alert('不能有特殊字符!');location.href='admin.php';</script>";}if($num){//如果用户存在,就检查密码是否正确$rs = mysql_fetch_array($result);if($rs[2]!=$password){echo "<script>alert('密码不正确,请确认后输入!');location.href='admin.php';</script>";}else{//用户名,密码都正确,注册SESSION变量,然后跳转到首页$_SESSION["key"]=1;echo "<script>alert('登录成功!');location.href='index.php';</script>";}}else{//如果没有这个用户echo "<script>alert('没有这个用户,请确认后输入!');location.href='admin.php';</script>"; }?>12、adminexit.php(退出管理页)<?phpsession_start();$_SESSION["key"] = 0;//使SESSION不为1,0为游客,1为管理员header('location:index.php');?>只是些基本的东东,像MD5加密,UBB,表情图片,添加管理员账号,回复留言(-_!!)等我都没加上去,有兴趣的同学可以完善下,不足的地方请指出^_^管理员账号:wuleying 密码:123456。