为什么我的这个留言板每次已提交就自动把以前的存在msg.txt里面的内容自动删除了?
<?php
header('content-type:text/html;charset=utf8');
$filename='msg.txt';
$msg=[];
//从文件中取出信息并出现在网页上
$date=file_get_contents($filename);
$dates=unserialize($date);
//检测数据是否提交
if(isset($_POST['sub'])){
$username=strip_tags($_POST['username']);
$title=strip_tags($_POST['title']);
$content=strip_tags($_POST['content']);
$time=date('Y年m月d日 H:i:s');
$date=compact('username','title','time','content');
array_push($msg,$date);
var_dump($msg);
$msgs=serialize($msg);
//判断是否已经存入txt文件,并作出提示
if(file_put_contents($filename,$msgs)){
echo "<script>alert('留言成功!');location.href='msg.php';</script>";
}else{
echo "<script>alert('留言失败!');location.href='msg.php';</script>";
}
}
?>
<html>
<head>
<script type="text/javascript" src="../js/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui"></script>
<link href="../js/bootstrap-combined.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="page-header">
<h1>
留言板 V1.0
</h1>
</div>
<div class="hero-unit">
<h1>
Hello, world!
</h1>
<p>
这是一个可视化布局模板, 你可以点击模板里的文字进行修改, 也可以通过点击弹出的编辑框进行富文本修改. 拖动区块能实现排序.
</p>
<p>
<a class="btn btn-primary btn-large" href="#" rel="nofollow">参看更多 »</a>
</p>
</div>
<table class="table">
<thead>
<tr>
<th>
编号
</th>
<th>
用户
</th>
<th>
标题
</th>
<th>
时间
</th>
<th>
内容
</th>
</tr>
</thead>
<?php $i=1; foreach ($dates as $v) { ?>
<tbody>
<tr>
<td>
<?php echo $i++; ?>
</td>
<td>
<?php echo $v['username']; ?>
</td>
<td>
<?php echo $v['title']; ?>
</td>
<td>
<?php echo $v['time'] ?>
</td>
<td>
<?php echo $v['content']; ?>
</td>
</tr>
</tbody>
<?php } ?>
</table>
<form class="form-horizontal" action="#" method="post">
<div class="control-group">
<label class="control-label" for="inputEmail">用户名</label>
<div class="controls">
<input id="inputEmail" type="text" name="username" required/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">标题</label>
<div class="controls">
<input id="inputPassword" type="text" name="title" required/>
</div>
</div>
、<div class="control-group">
<label class="control-label" for="inputPassword">内容</label>
<div class="controls">
<textarea rows="8" cols="80" name="content" required></textarea>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" class="btn btn-primary btn-large" name="sub" value="发布留言">
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
正在回答 回答被采纳积分+1
你好,一、老师讲解的是添加留言功能是不需要获取留言id的。
二、编辑留言代码的执行顺序是
1、获取留言的id。
$editkey = $_GET['editkey'];
2、定义留言的文件,然后定义一个数组用来存放所有留言。
$filename="msg.txt";
3、 由于编写代码的严谨性,使用变量之前应检查变量是否存在。
if(file_exists($filename))
4、如果变量存在获取变量的内容。
5、获取的内容进行实例化转换成数组。
$msgs=unserialize($string);
6、然后获取通过post表单提交的编辑后的留言内容
if(isset($_POST['pubMsg'])){ $username=$_POST['username']; $title=strip_tags($_POST['title']); $content=strip_tags($_POST['content']); $time=time(); //将其组成关联数组 $data=compact('username','title','content','time');
7、根据编辑留言的id,利用新编辑的留言替换原有的留言,
$key = $_POST['editkey']; $msgs[$key] = $data;
8、然后对留言进行序列化
$msgs=serialize($msgs);
9、最后保存。
file_put_contents($filename,$msgs))
如果解决您的问题请采纳,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星