PHP接收数据小系统之前展示数据(一)-一下思路
在写代码之前做个自我介绍。. .大家好,我叫燕子天外神坛,就叫我燕子吧。
做一个简单的PHP消息系统。
环境:PHP5.3++MySQL
当地的:
开发工具:Zend 11.0.2
知识点:PHP如何接收数据、序列化和反序列化操作等。
OK,在做这么小的系统之前,先理清思路。
做前端页面(显示数据)。后端接受数据并存储优化系统1.以制作简单的首页。
创建一个新文件并将其命名为“index.php”。这里就不讲制作过程了(也真的没什么好讲的)。主要是HTML的一些知识,基本是这样的:(里面的数据是可选的)
http://tt.ccoox.cn/data/attachment/forum/20220108/1641632740941_0.jpg
既然我们主要讲PHP(毕竟前端不是强项)php留言板系统,还是把前端页面简单点比较好。
直接粘贴代码:
<p><pre> <code class="language-text"> <!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>留言页表页</title>
</head>
<body>
<div align="center">
<h2 align="center">留言页表页 - 继续添加</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>https://tt.ccoox.cn/img/face.png</td>
</tr>
</code></pre></p>
现在,制作另一个添加页面并将其命名为“.php”。效果和代码如下:
<p><pre> <code class="language-text"><!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"/>https://tt.ccoox.cn/img/face.png
<input type="radio" name="xinqing" value="face.png"/>https://tt.ccoox.cn/img/face.png
<input type="radio" name="xinqing" value="face.png"/>https://tt.ccoox.cn/img/face.png
<input type="radio" name="xinqing" value="face.png"/>https://tt.ccoox.cn/img/face.png
<input type="radio" name="xinqing" value="face.png"/>https://tt.ccoox.cn/img/face.png
</tr>
<tr>
<td colspan="2"><input type="submit" value="发表"/></td>
</tr>
</table>
</form>
</div>
</body>
</html></code></pre></p>
2.接收存储的数据并显示在前端。
创建一个名为“.php”的新文件来接收和保存数据。
注意!这时候就需要在添加页面(“.php”)中为要传递的数据添加name属性。喜欢
<p><pre> <code class="language-text"><input type="text" name="title" placholder="请输入昵称"></input></code></pre></p>
并将表单中的提交方法设置为“GET”:
<p><pre> <code class="language-text"><form action="doAction.php" method="get"></code></pre></p>
接下来,在“.php”中编写代码。
使用$_GET方法接收传过来的数据,并加一个isset判断:如果数据没有传过来,就给一个空值,如:
<p><pre> <code class="language-text">$username = isset($_GET['username'])?$_GET['username']:'';</code></pre></p>
将接收到的数据存储在一个二维数组中:
<p><pre> <code class="language-text">$arr[] = array(
'username'=>$username,
'title'=>$title,
'content'=>$content,
'xinqing'=>$xinqing,
'time'=>$time
);</code></pre></p>
序列化一个二维数组:
<p><pre> <code class="language-text">$arr = serialize($arr);//序列化</code></pre></p>
将序列化数据存储在名为“Data.txt”的文件中,例如:
<p><pre> <code class="language-text">$filename='Data.txt';
if(file_put_contents($filename, $arr)){
echo '添加留言成功<br />'.'继续添加|'.'查看留言|';
}else {
echo '添加留言失败';
}</code></pre></p>
前端显示:
这时候需要在“index.php”中添加几行代码:
1.读取代码:让前端读取数据:(把这段代码加到前面)
<p><pre> <code class="language-text"><?php
$filename = 'Data.txt';
if (file_exists($filename)&&filesize($filename)>0){
$str = file_get_contents($filename);//取出数据
$userInfo = unserialize($str);//反序列化
}
?></code></pre></p>
2.显示代码:遍历二维数组:(注意:此时应保留table标签的tr标签的第一行):
<p><pre> <code class="language-text"><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>https://tt.ccoox.cn/"alt="" /></td>
</tr>
<?php
}?>
</table></code></pre></p>
这样前端就可以读取和显示数据了!
3.一些小优化
1.为了防止恶意请求占用系统空间,我们需要对系统进行优化:
向表单标签添加一个按钮php留言板系统,如下所示:
<p><pre> <code class="language-text"><input type="hidden" name="act" value="add"/></code></pre></p>
在“.php”中添加if判断:
<p><pre> <code class="language-text"> if ($act=='add'){//存入数据
$arr[] = array(
'username'=>$username,
'title'=>$title,
'content'=>$content,
'xinqing'=>$xinqing,
'time'=>$time
);
}</code></pre></p>
这段代码的目的是防止恶意请求占用系统空间。这样,只需要判断值是否通过即可。
2.修复一个小bug:这个小bug是所有数据只能存储一次。如果有新数据进来,它将被覆盖。为了解决这个问题,可以加一个if判断:
<p><pre> <code class="language-text">if (file_exists($filename)&&filesize($filename)>0){
//取出数据
$str = file_get_contents($filename);
//反序列化
$arr = unserialize($str);
}</code></pre></p>
这个判断的目的是判断文件是否已经存在。如果存在,则取出文件中的数据反序列化成二维数组,将新数据一起序列化到文件中,避免新数据覆盖旧数据。.
好了,现在一个简单的 PHP 消息系统就完成了。
页:
[1]