添加留言界面验证必填错误提示之后怎么保存用户填写部分的内容?
在添加留言界面,使用php的if语句(前端required在是用返回按钮的时候不能通过)验证必填是否已经填写,如果部分未填弹出错误提示之后,返回的添加界面之前用户填写的部分也清空了,应该怎么给用户保存下来呢?
需要完善的代码如下:
<?php header('content-type:text/html; charset=utf-8'); header('Cache-control: private, must-revalidate'); date_default_timezone_get('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'])){ if(empty($_POST['username'])){ echo "<script>location.href='add.php';alert('用户名为必填字段!');</script>"; exit; }else { $username=$_POST['username']; if(empty($_POST['title'])){ echo "<script>location.href='add.php';alert('标题为必填字段!');</script>"; exit; }else { $title=strip_tags($_POST['title']); if(empty($_POST['content'])){ echo "<script>location.href='add.php';alert('内容为必填字段!');</script>"; exit; }else { $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='index.php';</script>"; }else { echo "<script>alert('留言失败!'); location.href='index.php';</script>"; } } } } } if(isset($_POST['backAdd'])){ echo "<script>location.href='index.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> <a href="index.php" style="text-decoration:none;">IMOOC留言板</a> </h1> </div> <div class="hero-unit"> <h1> 既然来了,就说点什么吧~ </h1> <hr /> <p> 把你想说的写下来,标注好你的姓名、主题,点击提交发送给我们,让小伙伴们都知道你在想些什么. </p> <p> <a rel="nofollow" class="btn btn-primary btn-large" href="http://www.imooc.com/">访问慕课网 »</a> </p> </div> <?php if(is_array($msgs)&&count($msgs)>0):?> <?php endif; ?> <form method="post"> <legend>请留言</legend> <div class="form-group"> <label>用户名</label> <input type="text" name="username" style="height:30px; width:100%" /> </div> <div class="form-group"> <label>标题</label> <input type="text" name="title" style="height:30px; width:100%" /> </div> <div class="form-group"> <label>内容</label> <textarea name="content" style="height:100px; width:100%" ></textarea> </div> <hr /> <input type="submit" class="btn btn-success btn-lg" name="pubMsg" value="提交"/> <input type="submit" class="btn btn-lg" name="backAdd" value="返回"/> </form> </div> </div> </div> </body> </html>
118
收起
正在回答
4回答
你好,在弹出提示后在应该加上return false,否则页面会重新刷新内容将消失。
格式如下:
echo "<script>location.href='add.php';alert('用户名为必填字段!'); return false ;</script>";
其他部分的弹出提示后同样也要加上return false,如果解决了您的问题请采纳,祝学习愉快!
imooc_澈
2017-07-10 00:10:48
您好,session是系统全局变量,依赖本地的cookie存储,在以后的课程安排中我们会学习到,
敷衍你的敷衍 说法是正确的,要实现跳转回来以后保持原来填写的数据可以使用session,这里具体实现如下:
一进来添加页面就把POST值全存到SESSION中,要注意先要使用session_start()打开session
给表单的input框设置一个默认value值,这个value值就是从SESSION中取得,具体如下,要注意做好相关值是否存在的判断,存在即赋值,以免程序报错,这里也要使用session_start打开session,并且由于有php代码的插入,表单页面的文件后缀必须是.php哦
如果解决了您的问题,请采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星