时间:2023-09-07 15:54:02 | 来源:网站运营
时间:2023-09-07 15:54:02 来源:网站运营
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>
<input type="text" name="title" placholder="请输入昵称"></input>
而且设置form表单中的提交方式为“GET”:<form action="doAction.php" method="get">
接下来,写“doAction.php”中的代码。$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 '添加留言失败';}
<?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>
这样,前端就可以读取并展示数据了!<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的值是否传过来即可。if (file_exists($filename)&&filesize($filename)>0){ //取出数据 $str = file_get_contents($filename); //反序列化 $arr = unserialize($str); }
这个判断的目的就是判断一下文件是否已经存在,如果存在,取出文件中的数据并反序列化为二维数组,待新数据一起序列化存入文件,这样就可以避免新的数据覆盖掉旧数据。关键词:系统,留言,简单,实现