15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > PHP实现简单留言系统

PHP实现简单留言系统

时间:2023-09-07 15:54:02 | 来源:网站运营

时间:2023-09-07 15:54:02 来源:网站运营

PHP实现简单留言系统:在写代码之前先介绍一下自己。。。

你好,我叫雁紫,叫我雁紫就可以了。


做一个简单的PHP留言系统。

环境:PHP5.3 + Apache +MySQL

本地:localhost

开发工具:Zend Studio 11.0.2

知识点:PHP接收数据的方式、序列化与反序列化操作等等




OK,在做这么一个小系统之前,我们先梳理一下思路。

  1. 做好前端页面(展示数据)。
  2. 后端接受数据并储存
  3. 优化系统

1.做一个简单的前段页面。

新建一个文件,取名为“index.php”这里制作过程就不说了(也确实没啥好讲的)。主要就是一些HTML的知识,做好了基本是这样的:(里面的数据可有可无)

由于我们主要是讲PHP(毕竟前端也不是强项),所以前端页面制作的简陋些就好。

代码直接贴出来:

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>留言页表页</title> </head> <body> <div align="center"> <h2 align="center">留言页表页 - <a href="addMes.php">继续添加</a></h2> <table bgcolor="#0080ff" border="1" width="80%" auto="0"> <tr> <td>编号</td> <td>标题</td> <td>内容</td> <td>留言者</td> <td>发布时间</td> <td>心情</td> </tr> <tr> <td>1</td> <td>1111</td> <td>11111111111</td> <td>1</td> <td>2017-10-02 09:10:51</td> <td><img width="100px" height="100" src="img/face.png"alt="" /></td> </tr>现在,再制作一个添加页面,命名为“addMes.php”。效果和代码如下:

<!doctype html><html lang="en"><head> <meta charset="UTF-8" /> <title>添加留言页</title></head><body><div align="center"> <h2>添加留言</h2> <form action="doAction.php" method="get"> <input type="hidden" name="act" value="add"/> <table border="1" bgcolor="#0080ff" width ="80%"> <tr> <td>发表人</td> <td><input type="text" name="username" placholder="请输入昵称" id="username"/></td> </tr> <tr> <td>标题</td> <td><input type="text" name="title" placholder="请输入昵称" id="titlie"/></td> </tr> <tr> <td>内容</td> <td><textarea name="content" id="" cols="45" rows="10"></textarea></td> </tr> <tr> <td>心情</td> <td><input type="radio" name="xinqing" value="face.png" checked="checked"/><img src="img/face.png" alt="" width="70px"/> <input type="radio" name="xinqing" value="face.png"/><img src="img/face.png" alt="" width="70px"/> <input type="radio" name="xinqing" value="face.png"/><img src="img/face.png" alt="" width="70px"/> <input type="radio" name="xinqing" value="face.png"/><img src="img/face.png" alt="" width="70px"/> <input type="radio" name="xinqing" value="face.png"/><img src="img/face.png" alt="" width="70px"/> </tr> <tr> <td colspan="2"><input type="submit" value="发表"/></td> </tr> </table> </form></div></body></html>

2.接收储存数据并让前端展示。

新建一个文件,命名为“doAction.php”用来接收和保存数据。

注意!这时你要在添加页(“addMes.php”)中给你要传的数据添加name属性。如

<input type="text" name="title" placholder="请输入昵称"></input>而且设置form表单中的提交方式为“GET”:

<form action="doAction.php" method="get">接下来,写“doAction.php”中的代码。

用 $_GET方法来接收传过来的数据,并加上一个isset判断:如果未传过来数据则给空值,如:

$username = isset($_GET['username'])?$_GET['username']:'';将接收到的数据存放在一个二维数组内:

$arr[] = array( 'username'=>$username, 'title'=>$title, 'content'=>$content, 'xinqing'=>$xinqing, 'time'=>$time );将二维数组序列化:

$arr = serialize($arr);//序列化将序列化数据存放如名为“Data.txt”的文件中:

$filename='Data.txt';if(file_put_contents($filename, $arr)){ echo '添加留言成功<br />'.'<a href="addMes.php">继续添加</a>|'.'<a href="index.php">查看留言</a>|';}else { echo '添加留言失败';}

前端展示:

这时需要在“index.php”中加入几句代码:

1.读取代码:让前端读取数据:(加此代码添加到<!doctype html>前即可)

<?php $filename = 'Data.txt'; if (file_exists($filename)&&filesize($filename)>0){ $str = file_get_contents($filename);//取出数据 $userInfo = unserialize($str);//反序列化 }?>2.展示代码:将二维数组通过 foreach 遍历出来:(注意:此时要保留table标签的第一行tr标签):

<table bgcolor="#0080ff" border="1" width="80%" auto="0"> <tr> <td>编号</td> <td>标题</td> <td>内容</td> <td>留言者</td> <td>发布时间</td> <td>心情</td> </tr> <?php foreach ($userInfo as $key=>$val){ ?> <tr> <td><?php echo $key+1;?></td> <td><?php echo $val['title'];?></td> <td><?php echo $val['content'];?></td> <td><?php echo $val['username'];?></td> <td><?php echo $val['time'];?></td> <td><img width="100px" height="100" src="img/<?php echo $val['xinqing'];?>"alt="" /></td> </tr> <?php }?> </table>这样,前端就可以读取并展示数据了!

3.几点小优化

1.为了防止恶意请求占用系统空间,我们需对系统做几点优化:

在form标签内再加一个按钮为hidden:

<input type="hidden" name="act" value="add"/>在“doAction.php”中加上一个if判断:

if ($act=='add'){//存入数据 $arr[] = array( 'username'=>$username, 'title'=>$title, 'content'=>$content, 'xinqing'=>$xinqing, 'time'=>$time ); }这段代码的目的是是为了防止恶意请求占用系统空间,这样,只需要判断一下hidden的值是否传过来即可。

2.修复一个小BUG:这个小BUG就是所有的数据只能存储一次,如果有新的数据进来会被覆盖掉,为了解决这个问题,可以添加一个if判断:

if (file_exists($filename)&&filesize($filename)>0){ //取出数据 $str = file_get_contents($filename); //反序列化 $arr = unserialize($str); }这个判断的目的就是判断一下文件是否已经存在,如果存在,取出文件中的数据并反序列化为二维数组,待新数据一起序列化存入文件,这样就可以避免新的数据覆盖掉旧数据。




好啦,现在一个简单PHP留言系统就完成啦。

转载请注明出处

关键词:系统,留言,简单,实现

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭