2-9大作业 又出问题了。

2-9大作业 又出问题了。

主页有出问题的,这样问题我不知道是哪里的问题。。http://img1.sycdn.imooc.com/climg//597b62a80001ced009120066.jpg

是的,在11行

但我不明白错哪里了,请老师帮帮忙。

<?php
header("content-type:text/html;chaser=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);
}
}

 ?>
<!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="hero-unit">
<h1>
<strong>留言板</strong>
</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>
<th>
操作
</th>
</tr>
</thead>
<?php foreach($msgs as $key=>$val): ?>
<tbody>
<tr class="success">
<td>
1
</td>
<td>
King
</td>
<td>
标题!
</td>
<td>
<?php echo date('Y-m-d H:i:s',time()) ?>
</td>
<td>
内容!
</td>
<td>
编辑|删除
</td>
</tr>
</tbody>
</table>
<?php endforeach; ?>
<?php endif; ?>
<hr/>
<p>
<a class="btn btn-primary btn-large" href="add.php" rel="nofollow">我要留言 »</a>
</p>


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


正在回答

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

3回答

您好,当您留言成功应该返回index.php,留言失败时应该返回add.php,不应给空的链接地址。由于您给留言成功和留言失败时的跳转地址都是#,导致成功或失败,都会回到首页上,而此时首页中是没有数组中的信息的,会直接没有显示内容。且小慕这边测试您的代码是在点击发布留言按钮之后没有留言显示,并不存在关闭浏览器再次打开时,数据不存在的情况。祝学习愉快!

  • 羽澜星 提问者 #1
    是的,点击发布留言按钮之后没有留言显示。。 这里比较麻烦,思路不清晰,不知道哪里做错了。
    2017-07-31 15:27:48
  • 好帮手慕查理 回复 提问者 羽澜星 #2
    您好,当您留言成功之后,请跳转至首页,留言失败时请跳转至添加留言的页面。祝学习愉快!
    2017-07-31 18:17:25
提问者 羽澜星 2017-07-29 21:45:04

首页 代码:

<?php
header("content-type:text/html;chaser=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['pubMsg'])){
//接收用户信息
$username=$_POST['username'];
$title=strip_tags($_POST['title']); //过滤HTML标记防止注入
$content=strip_tags($_POST['content']);
$time=time();
//将其组成关联数组
$data=compact('username','title','content','time');
//放到$msgs数组中
array_push($msgs,$data);
$msgs=serialize($msgs);
//写入文件
if(file_put_contents($filename,$msgs)){
//成功:弹出提示且返回当前页面
echo "<script>alert('留言成功');locaton.href='#';</script>";
}else{
//失败:弹出提示且返回当前页面
echo "<script>alert('留言失败');locaton.href='#';</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="hero-unit">
<h1>
<strong>留言板</strong>
</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>
<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('Y-m-d H:i:s',$val['time']); ?>
</td>
<td>
<?php echo $val['content']; ?>
</td>
<td>
编辑|删除
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<hr/>
<p>
<a class="btn btn-primary btn-large" href="add.php" rel="nofollow">我要留言 »</a>
</p>
</div>
</div>
</div>
</body>
</html>

add.php 添加留言页面:

<?php
header("content-type:text/html;chaser=utf-8;");
date_default_timezone_set('PRC');


 ?>
<!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="hero-unit">
<h1>
请写下你想说的话....
</h1>
</div>
<form class="form-horizontal" action="1.php" method="post">
<div class="control-group">
<label class="control-label" >用户名</label>
<div class="controls">
<input  type="text" name="username" required />
</div>
</div>
<div class="control-group">
<label class="control-label" >标题</label>
<div class="controls">
<input  type="text" name="title" required />
</div>
</div>
        <div class="control-group">
<label class="control-label" >内容</label>
<div class="controls">
<textarea name="content" rows="8" cols="80"></textarea>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" name="pubMsg" value="发布留言" class="btn btn-primary btn-large" />
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>


guly 2017-07-29 18:28:44

你好,代码第10行结束应该加上分号,如果解决了您的问题,请采纳,祝学习愉快!

  • 提问者 羽澜星 #1
    感谢!! 改正过来以后,我继续写,又出现了一个问题。 点击--首页的“我要留言”--跳转到--add.php页面,完成留言后,发布留言返回 首页 能显示 表格。 但,关闭浏览器,重新打开首页,记录不显示了。找不到应该修改哪里。代码如下:
    2017-07-29 21:43:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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