老师,帮拖,点击留言后,出现这个错误提示

来源:2-16 作业题

Seven_CL

2017-06-24 22:32:37

<?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['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('留言成功!');</script>";
		}else {
			echo "<script>alert('留言失败!');location.href='lyb.php';</script>";
		}
	}
?>

http://climg.mukewang.com/594e77fc0001a1f408970147.jpg

写回答

3回答

irise

2017-06-26

同学,您好!在定义$msgs='';改成$msgs = array();即可!祝学习愉快!


0
huly
回复
heven_CL
h 你好,这里面有三处需要修改: 1.第五行: $msgs = '';改为$msgs =[]; 2.删除msg.txt文件。 3.echo "<script>alert('留言成功!');location.href='lyb.php';</script>"; 如果解决了您的问题请采纳,祝学习愉快!
h017-06-27
共2条回复

irise

2017-06-25

同学,您好!array_push()的参数您搞反了,根据官方语法,array_push函数要求第一个参数必须是数组呢!

http://climg.mukewang.com/594f2d910001fdfe08690299.jpg

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

0
heven_CL
h 老师,真是一语惊醒梦中人,困扰了我很久。这个错误终于没有了。我也看了很就官方的文件,不够细心没有发现问题。 该了之后,留言还是不成功,还是失败,文件那里是存储文件只写入了:s:0:"";
h017-06-25
共1条回复

慕姐020479

2017-06-24

把文件(msg.txt)里面的东西删掉试试 可能是序列化出来的数组合你组成的数组不一致。


0
heven_CL
h 删除了,还是不行。留言不成功
h017-06-25
共1条回复

0 学习 · 2569 问题

查看课程