编辑页面,获取编辑内容成功,但是点击提交却是新建

编辑页面,获取编辑内容成功,但是点击提交却是新建

index.php

<?php 
header("content-type:text/html;chaser=utf-8;");
date_default_timezone_set('PRC');
$filename = "msg.txt";
$msgs = [];
if(is_file($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();
$date = compact('username','title','content','time');
array_push($msgs, $date);
$msgs = serialize($msgs);
if(file_put_contents($filename, $msgs)){
echo "<script>location.href='index.php';</script>";
}else{
echo "<script>alert('留言失败!');location.href='index.php';</script>";
}
}
 ?>

 <!DOCTYPE html>
<html>
<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留言板-<span>V1.0</span>
</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>

</tr>
</thead>
<tbody>
<?php $i=1; foreach($msgs as $key => $val): ?>
            <tr class="success">
              <td>
                <?php echo $i++; ?>
              </td>
              <td>
                <?php echo $val['username']; ?>
              </td>
              <td>
                <?php echo $val['title']; ?>
              </td>
              <td>
                <?php echo date("m/d/Y H:i:s",$val['time']);?>
              </td>
              <td>
                <?php echo $val['content']; ?>
              </td>
              <td>
                <a href="edit.php?editkey=<?php echo $key;?>">编辑</a>|<a href="delete.php?edit=id">删除</a>
              </td>
            </tr>
         <?php endforeach; ?>
</tbody>
</table>
    <?php endif; ?>
<form action="add.php" method="post">
<fieldset>
<legend>请留言</legend>
           <label>用户名</label><input type="text" name="username" required />
           <label>标题</label><input type="text" name="title" required />
           <label>内容</label><textarea name="content" rows="5" cols="30" required></textarea>
           <hr>
           <input type="submit" class="btn btn-primary btn-lg" name="pubMsg" value="发布留言"/>
</fieldset>
</form>
</div>
</div>
</div>
</body>
</html>

edit.php

<?php 
header("content-type:text/html;chaser=utf-8;");
date_default_timezone_set('PRC');
$filename='msg.txt';
$editkey = $_GET['editkey'];
$msgs = [];
if(is_file($filename)){
$string = file_get_contents($filename);
if(strlen($string)>0){
$msgs = unserialize($string);
}
}
$editarr = $msgs[$editkey];
// if(isset($_POST['pubMsg'])){
//  // $editarr = $msgs[$editkey];
// }

// print_r($editarr);
?>

 <!DOCTYPE html>
<html>
<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>
修改页面
</h1>
</div>
      
<form action="index.php" method="post">
<fieldset>
   
           <label>用户名</label><input type="text" name="username" value="<?php  echo $editarr['username']?>" required />
           <label>标题</label><input type="text" name="title" value="<?php  echo $editarr['title']?>" required />
           <label>内容</label><input type="text" name="content" value="<?php  echo $editarr['content']?>" required />
           <hr>
           <input type="submit" class="btn btn-primary btn-lg" name="pubMsg" value="确认修改"/>
           <input type="hidden" name="editkey" value="<?php echo $editkey?>">
</fieldset>
</form>
</div>
</div>
</div>
</body>
</html>




正在回答 回答被采纳积分+1

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

2回答
我要学习的棒棒的 2018-01-12 13:00:50

我也是提交都是新建 怎么回事

  • guly #1
    你好,如果有问题建议贴出具体代码,以便助教准确回答您的问题,祝学习愉快!
    2018-01-12 13:57:11
imooc_澈 2018-01-04 14:08:34

您好,修改页面点击确认修改,数据提交至index.php页面,您的index.php中的php代码执行的是array_push,自然每次都是新增,根据您的功能逻辑,新增留言时提交到add.php页面,因此index.php页面只处理留言编辑,那么index.php页面中的php处理代码修改如下:

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

如果解决了您的问题,请采纳,祝学习愉快~


  • 提问者 MosesVon #1
    不不不,首页的提交是提交到本地的,我没留意,续上开始的问题
    2018-01-04 14:26:23
  • imooc_澈 回复 提问者 MosesVon #2
    意思是新增留言和编辑留言的表单提交都提交到index.php页面吗?如果是的话,那就在index.php页面的处理代码中区分一下添加和编辑,如果是添加的话$_POST['editkey']肯定不存在,这时候就用array_push,如果存在的话那肯定是编辑,就用$editkey接收下标值,用上面回答中的数据更新语句$msgs[$editkey]=$date,就可以了。
    2018-01-04 16:23:19
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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