老师,留言添加后显示不出来?array_push()警告

老师,留言添加后显示不出来?array_push()警告

<?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);

   }

}


$data=[];

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);

if(file_put_contents($filename,$msgs)){

    echo "<script>alert('留言成功!');location.href='imooc1.php';</script>";

 }else{

    echo "<script>alert('留言失败!');location.href='imooc1.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留言板<small>v1.0</small>

</h1>

</div>

<div class="hero-unit">

<h1>

Hello, Imooc!

</h1>

<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/d/m H:i:s',$val['time']);?>

</td>

            <td>

<?php echo $val['content'];?>

</td>

</tr>

        <?php endforeach;?>

</tbody>

</table>

    <?php endif;?>

<form action="#" 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>


正在回答

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

2回答

你好,经测试代码是没有问题的,注意表单提交后跳转的PHP是否是该PHP文件的名称

if(file_put_contents($filename,$msgs)){
    echo "<script>alert('留言成功!');location.href='imooc1.php';</script>";
 }else{
    echo "<script>alert('留言失败!');location.href='imooc1.php';</script>";
 }

代码运行效果为:

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

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

  • 慕慕2044423 提问者 #1
    跳转的页面就是php页面的名字。我又试了一次,还是不行。print_r($msgs) 显示出一个b:0; 是怎么回事啊
    2017-11-07 10:42:14
  • guly 回复 提问者 慕慕2044423 #2
    查看目录中是否有msg.txt,删除该txt文件重新尝试一下。
    2017-11-07 10:44:31
  • 慕慕2044423 提问者 回复 guly #3
    可以了,老师。原来就有msg.txt文件。里面还有值。删除了就正常了
    2017-11-07 10:57:00
提问者 慕慕2044423 2017-11-07 10:41:30

跳转的页面就是php页面的名字。我又试了一次,还是不行。print_r($msgs) 显示出一个b:0; 是怎么回事啊

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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