php简易留言板

今天教大家的内容会终于和mysql挂钩了。今天我们要讲个通过php+mysql的组合来做一个简单的留言板。

一、数据库设计

首先,是简易的,所以我们只要知道留言内容,谁留的言,以及留言时间就可以了,所以数据库很简单只要id,message,name,date这几个字段就好了。id用整型,留言可能会很长所以用text类型,name一般不会很长就用char型,date就用date类型。(mysql的类型介绍以后将详细讲下)

还记得上次给大家介绍的mysql图形工具吗,打开mysql query browser在右边空白处右击选create new schema来新建一个数据库写入test,然后在test上右击选create new table 新建表,接下来按图设置好字段

php留言板

设置好后选table option选项卡,设置下字符集

php留言板2

然后按apply changes,下一步可以看一下执行的SQL语句,以后你就可以在没有图形工具的情况下,也可以操作了。这样一个标就创建好了。

二、程序部分

然后在www/test/目录写一个文件message.php我们需要一个提交留言的html页面。(php本身可以写html)所以我们先将下面的代码写入message.php,然后代开www.test.com/message.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>php留言板</title>
</head>
<body>
<form action="" method="post">
   <ul>
   <li><span>姓名:</span><input type="name" value=""></li>
   <li><span>留言:</span><textarea name="message"></textarea></li> 
   <li><input type="submit" value="提交"></li>

   </ul>
</form>
</body>
</html>

php留言板2

这就是一个简单的提交页面了

接下来是php的内容。

首先我们要接收我们输入的内容,并且把接收的内容存到数据库,还记得_POST吗,我们今天就要用上了。加上php的完整代码

<?php

$name= $_POST['name'];
$message= $_POST['message'];
$date = date("Y-m-d H:i:s",time());

// 链接数据库
$link = mysql_connect('localhost', 'root', '7088006146') /* 这三个值分别是主机,mysql用户名,mysql密码 因为我们在本地所以主机地址是localhost*/
  or die('无法链接: ' . mysql_error());
mysql_query("set names utf8;");
mysql_select_db('test') or die('无法选择数据库@'); /* 选择数据库 */

if($name && $message){

  //保存到数据库
  $query = "INSERT INTO message (`name`,`message`,`date`) values ('$name','$message','$date')";
  mysql_query($query) or die('操作失败: ' . mysql_error());

}

// 查询所有的留言
$query = 'SELECT * FROM message';
$result = mysql_query($query) or die('查询失败: ' . mysql_error());

$message = array();
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

  $messages[] = $line;//取出数据
}

// 释放数据库资源
mysql_free_result($result);

// 关闭数据库链接
mysql_close($link);

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>php留言板</title>
</head>
<body>
 <table cellpadding="0" cellspacing="0" width="400px;" border="1">
<tr><td style="width:30px;">ID</td><td style="width:50px;">姓名</td><td>留言</td><td style="width:70px;">留言时间</td></tr>
  <?php foreach($messages as $m){?>
<tr><td><?php echo $m['id']?></td><td><?php echo $m['name']?></td><td><?php echo $m['message']?></td><td><?php echo $m['date']?></td></tr>
<?php }?>
</table>
<form action="" method="post">
   <ul>
   <li><span>姓名:</span><input type="text" name="name" value=""></li>
   <li><span>留言:</span><textarea name="message"></textarea></li> 
   <li><input type="submit" value="提交"></li>

   </ul>
</form>
</body>
</html>

代码中已经解释的很清楚了。好了,一个简单的留言程序就做好了。

另外大家可能发现你在输入的时候换行不见了。。。。还有当输入html标签的时候页面乱了。。。接下来我们解决这两个问题

第一个问题只要在输出的时候加上nl2br即可本例中就是nl2br($m[‘message’]);

第二个问题,我们必须在存入数据库的时候把用户提交的内容用htmlspecialchars转义下,对已经存进数据库影响页面的可以用strip_tags去除html标签本例中,在$message = htmlspecialchars($message);即可解决这个问题

可能你还会遇到一个问题,编码问题,因为我这里用的都是utf8所以包括页面以及数据库设计的时候都设置了utf8,其实只要保证数据库本身,数据库查询时,以及页面三者都是一样的编码,就不会出现乱码了

 

本文固定链接: http://www.qaforcode.net/archives/377 | 猪哥每日一贴

该日志由 趴在树上的猪 于2012年11月27日发表在 mysql, php 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: php简易留言板 | 猪哥每日一贴
关键字: , , , ,

php简易留言板:目前有1 条留言

  1. 沙发
    菜鸟学习:

    ❗ 失败了 :roll:

    2012-12-01 下午 3:11 [回复]

发表评论


快捷键:Ctrl+Enter

浙公网安备 33010602001905号