1-6作业:留言板,请看看怎么编写编辑的代码?

1-6作业:留言板,请看看怎么编写编辑的代码?

<?php
date_default_timezone_set("PRC");
header('content_type:text/html;charset=utf-8');
//msg.txt是提交后的信息,是序列化后的
$filename="msg.txt";
$msgs=[];
//检测文件是否存在
if (file_exists($filename)){
//读取文件中的内容
$string=file_get_contents($filename);
if (strlen($string)>0){
$msgs=unserialize($string);
}
}
//检测用户是否点击了提交按钮
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');
array_push($msgs,$data);
$msgs=serialize($msgs);
//将数组写进$filename,如果成功回到第八行代码读取msg.txt文件内容赋值给数组,然后往下遍历出来;
if(file_put_contents($filename,$msgs)){
echo "<script>alert('留言成功!');location.href='liuyanban.php';</script>";
}else{
echo "<script>alert('留言失败!');location.href='liuyanban.php';</script>";
}
}
/*
$msgs=[
   [...],
   [...]
];
file_get_content($filename):得到文件中的内容,返回的是字符串
file_put_contents($filename,$data):向指定文件写内容;如果文件不存在会创建
serialize($str):序列化字符串
unserialize($str):反序列化字符串
*/
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
   <script type="text/javascript" src="http://www.francescomalagrino.com/BootstrapPageGenerator/3/js/jquery-2.0.0.min.js"></script>
   <script type="text/javascript" src="http://www.francescomalagrino.com/BootstrapPageGenerator/3/js/jquery-ui"></script>
   <link href="http://www.francescomalagrino.com/BootstrapPageGenerator/3/css/bootstrap-combined.min.css" rel="stylesheet" media="screen">
   <script type="text/javascript" src="http://www.francescomalagrino.com/BootstrapPageGenerator/3/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
   <div class="row-fluid">
       <div class="span12">
           <div class="page-header">
               <h1>
IMOOC-v1.0
               </h1>
           </div>
           <div class="hero-unit">
               <h1>
Hello, world!
               </h1>
               <p>
这是一个可视化布局模板, 你可以点击模板里的文字进行修改, 也可以通过点击弹出的编辑框进行富文本修改. 拖动区块能实现排序.
               </p>
               <p>
                   <a rel="nofollow" class="btn btn-primary btn-large" href="#">参看更多 »</a>
               </p>
           </div>
<?php
           if (is_array($msgs)&&count($msgs)>0):
?>
<table class="table">
               <thead>
               <tr>
                   <th>
编号
                   </th>
                   <th>
用户名
                   </th>
                   <th>
标题
                   </th>
                   <th>
时间
                   </th>
                   <th>
内容
                   </th>
                   <th>
操作
                   </th>
               </tr>
               </thead>
               <tbody>
<?php
$i=1;
foreach ( $msgs as $key=>$v):
?>
<tr class="success">
                       <td><?php echo $i++; ?></td>
                       <td><?php echo $v['username'];?></td>
                       <td><?php echo $v['title'];?></td>
                       <td><?php echo date('Y-m-d H:i:s',$v['time']);?></td>
                       <td><?php echo $v['content'];?></td>
//get传参的格式是问号后面跟get传参名称和值,在edit.php中接收;
                       <td><a href="edit.php?id=<?php echo '$key';?>">编辑</a></td>
                       <td><a href="" >删除</a></td>
                   </tr>
<?php
               endforeach;
?>
</tbody>
           </table>
<?php
           endif;
?>
<button><a href="add.php">我要留言</a></button>
       </div>
   </div>
</div>
</body>
</html>

-------------------------------下面是edit.php

<?php
$editkey=$_GET['id'];
$string=file_get_contents('msg.txt');
$msgs=unserialize($string);
$editmsgs=$msgs[$editkey];
echo $editmsgs;

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,1.add.php文件中input标签没有结束的>。

http://img1.sycdn.imooc.com//climg/5c874fca0001196108040107.jpg

2.首页中HTML中注释应该是使用<!-- -->

http://img1.sycdn.imooc.com//climg/5c87503f00012a6205390081.jpg

3.编辑按钮处输出$key值时,应该是输出$key变量的值,而不是字符$key。echo时不需要添加引号。

http://img1.sycdn.imooc.com//climg/5c8751b7000122be05770085.jpg

4.edit.php文件中输出$editmsgs变量时不能使用echo,$editmsgs是数组,可以使用print_r输出。

http://img1.sycdn.imooc.com//climg/5c87516c0001261903830171.jpg

祝学习愉快!

好帮手慕查理 2019-03-12 09:58:40

您好,add.php文件内容并没有反馈,请反馈。

http://img1.sycdn.imooc.com//climg/5c8711bb00019ae005130116.jpg

编辑留言代码此时已经取到唯一标识,然后根据唯一标识将内容展示即可。

然后判断用户是否点击“编辑完成”按钮,如果点击则接收用户输入的信息,并将数组中对应位置的信息改为接收的内容,将数组再次序列化写入文件中。祝学习愉快!

  • 提问者 慕田峪3102890 #1
    <form action="liuyanban.php" method="post"> <fieldset> <legend>请留言</legend> <label>用户名</label> <input type="text" name="username" required> <hr/> <label>标题</label> <input type="text" name="titile" required> <hr/> <label>内容</label> <textarea name="content" rows="10" cols="30" required style="resize: none"></textarea> <hr> <input type="submit" class="btn btn-primary btn-lg" value="发布留言" name="pubMsg"> <input type="submit" class="btn btn-primary btn-lg" value="查看留言" name="pubMsg"> </fieldset> </form> //上面是add.php的 怎么才能展示要编辑的内容?请指导一下。
    2019-03-12 13:27:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师