老师,一直留言失败,找不到哪里有问题,请帮忙看一下,谢谢

老师,一直留言失败,找不到哪里有问题,请帮忙看一下,谢谢

<?php
   $filename="msg.txt";//存数据的文件
   $msgs=[];
   if(file_exists($filename)){//检测文件是否存在
       $string=file_get_contents($filename);
       if(strlen($string)>0){
           $msgs=unserialize($string);
       }
   }
   if(isset($_POST['submit'])){
       $username=strip_tags($_POST['username']) ;
       $text=$_POST['text'];
       $contents=$_POST['contents'];
       $time=time();
       $data=compact('username','text','contents','time');
       array_push($msgs,$data);//将数组加入文件中
       $msgs=serialize($msgs);
   }
//    print_r($msgs);
   if(file_put_contents($filename,$msgs)){
       echo "<script>alert('留言成功');location.href='comments2.php'</script>";
   }
 else{
       echo "<script>alert('留言失败');location.href='comments2.php'</script>";
   }
?>
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>test link</title>
   <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>
</head>
<body>
<div class="container-fluid">
   <div class="row-fluid">
       <div class="span12">
           <div class="page-header">
               <h1>
                   <small><span><strong>留言吗vs1.0</strong></span></small>
               </h1>
           </div>
           <div class="carousel slide" id="carousel-759129">
               <ol class="carousel-indicators">
                   <li class="active" data-slide-to="0" data-target="#carousel-759129">
                   </li>
                   <li data-slide-to="1" data-target="#carousel-759129">
                   </li>
                   <li data-slide-to="2" data-target="#carousel-759129">
                   </li>
               </ol>
               <div class="carousel-inner">
                   <div class="item active">
                       <img alt="" src="image/1.jpeg" />
                       <div class="carousel-caption">
                           <h4>
                               棒球
                           </h4>
                           <p>
                               棒球运动是一种以棒打球为主要特点,集体性、对抗性很强的球类运动项目,在美国、日本尤为盛行。
                           </p>
                       </div>
                   </div>
                   <div class="item">
                       <img alt="" src="image/2.jpeg" />
                       <div class="carousel-caption">
                           <h4>
                               冲浪
                           </h4>
                           <p>
                               冲浪是以海浪为动力,利用自身的高超技巧和平衡能力,搏击海浪的一项运动。运动员站立在冲浪板上,或利用腹板、跪板、充气的橡皮垫、划艇、皮艇等驾驭海浪的一项水上运动。
                           </p>
                       </div>
                   </div>
                   <div class="item">
                       <img alt="" src="image/3.jpeg" />
                       <div class="carousel-caption">
                           <h4>
                               自行车
                           </h4>
                           <p>
                               以自行车为工具比赛骑行速度的体育运动。1896年第一届奥林匹克运动会上被列为正式比赛项目。环法赛为最著名的世界自行车锦标赛。
                           </p>
                       </div>
                   </div>
               </div> <a data-slide="prev" href="#carousel-759129" class="left carousel-control">‹</a> <a data-slide="next" href="#carousel-759129" class="right carousel-control">›</a>
           </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  $val){?>
               <tr class="success">
                   <td>
                       <?php echo $i++?>
                   </td>
                   <td>
                       <?php echo $val['username']?>
                   </td>
                   <td>
                       <?php echo $val['text']?>
                   </td>
                   <td>
                       <?php echo date("y-m-d h:i:s",$val['time'])?>
                   </td>
                   <td>
                       <?php echo $val['contents']?>
                   </td>
               </tr>
               <?php }?>

               </tbody>

           </table>
           <?php }?>
           <h3>留言</h3>
           <hr>
           <form action="#" method="post">

                   <label >用户名</label><input id="inputEmail" type="text" name="username" required/>
                   <label>标题</label><input id="inputtext" type="text" name="text" required/>
                   <label>内容</label><textarea name="contents" cols="32" rows="8" required></textarea>
                   <hr>
                   <input type="submit" class="btn btn-primary btn-lg" name="submit" value="发布留言">

           </form>
       </div>
   </div>
</div>
</body>
</html>

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

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

1回答
好帮手慕小尤 2019-08-08 16:32:06

同学你好,因判断是否留言成功的语句在添加逻辑的外面,导致添加失败。修改代码,如下:

<?php
$filename="msg.txt";//存数据的文件
$msgs=[];
if(file_exists($filename)){//检测文件是否存在
    $string=file_get_contents($filename);
    if(strlen($string)>0){
        $msgs=unserialize($string);
    }
}
if(isset($_POST['submit'])){
    $username=strip_tags($_POST['username']) ;
    $text=$_POST['text'];
    $contents=$_POST['contents'];
    $time=time();
    $data=compact('username','text','contents','time');
    array_push($msgs,$data);//将数组加入文件中
    $msgs=serialize($msgs);
    if(file_put_contents($filename,$msgs)){
        echo "<script>alert('留言成功');location.href='comments2.php'</script>";
    }
    else{
        echo "<script>alert('留言失败');location.href='comments2.php'</script>";
    }
}
?>

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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