老师帮忙看一下代码,提交留言显示留言失败,我把msg.txt文件和PHP文件放在同一级

老师帮忙看一下代码,提交留言显示留言失败,我把msg.txt文件和PHP文件放在同一级

<?php
  header('content-type:text/html;charset:utf-8');
  date_default_timezone_set('PRC');
  $filename = "msg.txt";
  $msgs = [];
  //检测文件是否存在
  if(file_exists($filename)){
    //读取文件中的内容
    $string = file_get_contents($filename);
    if(strlen($string)>0){
      $msgs = unserialize($string);
    }
  }
  //检测用户是否点击了提交按钮
  if(isset($_POST['sub'])){
    $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>alert('留言成功!');location.href='lyb.php'</script>";
    }else{
      echo "<script>alert('留言失败!');location.href='lyb.php'</script>";
    }
  }
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>留言板</title>

<meta name="description" content="Source code generated using layoutit.com">
<meta name="author" content="LayoutIt!">

<link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    <style>
      .title1{
        margin:40px 0px 40px 0px;
      }
    
    </style>

</head>
<body>

<div class="container-fluid">
  <div class="row">
    <div class="col-md-12">
      <h1 class="title1">
        留言板功能
      </h1>
      <div class="jumbotron">
        <h2>
          欢迎留言!
        </h2>
        <p>
          你可以在下方输入框内填写您的留言,我们会根据你的留言进行优化和调整,希望对你有帮助!
        </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 $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("Y-m-d-H:i:s"),$val['time']; ?>
              </td>
              <td>
                  <?php echo $val['content'];?>
              </td>
          </tr>
          <?php endforeach; ?>
        </tbody>
    <?php endif; ?>
      </table>
      <form role="form" method="POST">
        <div class="form-group">
          <label for="exampleInputEmail1">
            用户名
          </label>
          <input type="text" class="form-control" name="username" id="exampleInputEmail1" required="required" placeholder="请输入用户吗...">
        </div>
        <div class="form-group">
          <label for="exampleInputPassword1">
            标题
          </label>
          <input type="text" class="form-control" name="title" id="exampleInputPassword1" required="required" placeholder="请输入标题...">
        </div>
        <div class="form-group">
            <label for="exampleInputPassword1">
              内容
            </label>
            <input type="text" class="form-control" name="content" id="exampleInputPassword1" required="required" placeholder="请输入内容...">
          </div>
        <button type="submit" class="btn btn-primary" name="sub" style="width: 200px;height:50px;margin-bottom: 100px;">
          提交
        </button>
      </form>
    </div>
  </div>
</div>

    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/scripts.js"></script>
</body>
</html>


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

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

1回答
好帮手慕小尤 2019-05-30 18:05:38

同学你好,检查并运行代码,没有发现错误或运行失败。可以尝试将msg.txt文件里的数据进行删除,如果txt文件里储存格式(错误格式如:b:0;)不正确会导致反序列化失败,会影响数据添加。祝学习愉快!

  • 提问者 凉辰菌 #1
    $filename = "msg.rtf"; echo var_dump(file_exists($filename));老师我检查文件是否存在显示false,我这是Mac电脑,是电脑原因吗?
    2019-05-31 09:10:07
  • 好帮手慕小尤 回复 提问者 凉辰菌 #2
    同学你好,file_exists()是检测文件是否存在,存在为true,不存在为false。所以并不是你电脑的原因哦!祝学习愉快!
    2019-05-31 10:13:47
  • 提问者 凉辰菌 回复 好帮手慕小尤 #3
    老师可能我描述的有问题,我想问的是,我文本文档已经创建了是存在的,代码也是对的,但是代码里面检查不到文本文档存在,为什么?请老师解惑!
    2019-05-31 10:38:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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