首页  >  文章  >  后端开发  >  这个页面总是出现这个问题怎么回事?

这个页面总是出现这个问题怎么回事?

WBOY
WBOY原创
2016-06-20 12:36:58940浏览

这个页面就是类似贴吧的从帖子列表点进去后某个帖子的主页  回复是提交到本页的   遇到下面两个问题了 大家帮我看看谢谢
form表单


    

     
     
      
      
  

  

下面是插入语句
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
 $stnt=$pdo->prepare("insert into reply(reid,name,content)values(:reid,:name,:content)");
 $stnt->execute($_POST);
这两个代码都是写在一个页面的  页面出现两个问题  我提交表单后这个输入框里面的东西可以插入到数据库中  然后表单就会清空 但是我点击刷新页面后总是有一个提示框   就是下面这个图片的内容  如果我点击继续后刚才已经提交的数据就会再插入一遍到数据库中  而且我换别的浏览器刷新页面也是提示这个框  这是第一个问题 
  

第二个问题是从帖子列表点击进这个帖子后就显示报错了 因为上面这个代码还没有往数据库里面插入数据呢 没有产生POST的值  如果插入数据后这个报错就消失了  但是每次点进帖子还是会报错啊  因为是提交到本页的回复所以没有写action  但是我还是试着这样写了一个if判断   但是不对啊  不报错了但是提交数据后也插入不到数据库里面了   这个问题该怎么解决呢
if(isset($_GET['reid'])
{
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
 $stnt=$pdo->prepare("insert into reply(reid,name,content)values(:reid,:name,:content)");
 $stnt->execute($_POST);
}


回复讨论(解决方案)

1.刷新页面的时候会把$_POST里面的内容也带上。所以刷新等于一次重复的表单提
2.判断应该是判断$_POST['reid'],而不是$_GET

1.刷新页面的时候会把$_POST里面的内容也带上。所以刷新等于一次重复的表单提
2.判断应该是判断$_POST['reid'],而不是$_GET


第二个问题我改了一下  已经没问题了    那么第一个问题怎么解决呢?

第一个问题可以通过这个方法解决:

将真正的处理数据部分放到一个单独的文件中进行,处理完毕redirect回显示页面。

第一个问题可以通过这个方法解决:

将真正的处理数据部分放到一个单独的文件中进行,处理完毕redirect回显示页面。



你是说把插入的数据的代码的那一段另写一个文件是吗 插入完成后再跳转回来  是这样的吧   但是跳转回来的那个地址了的POST值怎么办呢   你再看一下我昨天提问的另一个帖子 
http://bbs.csdn.net/topics/391903553   这个代码比较完整    我上面的代码这样就是为了省略那个提交的post值所以才提交到本页的   但是现在又要改回回去   那个post值怎么办呢?

“那个POST值”是什么意思?你需要在插入数据成功之后,回到的页面再次显示这些数值?如果是这样,我建议你回到先前页面的时候带一个该记录的ID,然后用数据库查询的方式把这个纪录拿回来,再把字段赋值给表单。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn