PHP插入数据后再刷新,又插入了一条。怎样解决?

yeah86 2008-12-15 05:28:59
我从HTML表单里接受数据,然后插入数据库,但是,如果再刷新一下页面的话,又会插入一条相同的数据
请问如何做才能保证不再插入这种内容。而必须要由表单提交过来的数据才能被插入呢?
...全文
493 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wap21 2008-12-16
  • 打赏
  • 举报
回复
不懂,up
liutaiyu282186757 2008-12-16
  • 打赏
  • 举报
回复
在你的代码里面 添加这个 header('Location: #####'); ### 这个是你的提交PHP文件 重定向一下就OK了
test22 2008-12-16
  • 打赏
  • 举报
回复
上面那段不对.没看到你有echo
if(isset($_POST))
{
$sqlstr="INSERT INTO `post`(`name`,`gender`,`photo`,`qq`,`email`,`ip`,`title`,`content`,`time_at`) values('$name','$gender','$pic','$qq','$email','$ip','$title','$content',NOW())";
mysql_select_db($dbname,$dbconn);
$result = mysql_query($sqlstr);
mysql_close($dbconn);
if($result>0)
{
echo "<script>alert('插入数据成功!');location.href='index.php';</script>";
}
unset($_REQUEST);
}
test22 2008-12-16
  • 打赏
  • 举报
回复

if(isset($_POST))
{
$sqlstr="INSERT INTO `post`(`name`,`gender`,`photo`,`qq`,`email`,`ip`,`title`,`content`,`time_at`) values('$name','$gender','$pic','$qq','$email','$ip','$title','$content',NOW())";
mysql_select_db($dbname,$dbconn);
$result = mysql_query($sqlstr);
mysql_close($dbconn);
if($result>0)
{
echo "<script>alert('插入数据成功!')</script>";
}
unset($_REQUEST);
header("location: index.php");
}
智软设计 2008-12-16
  • 打赏
  • 举报
回复
................第一判断是否是提交,在是提交给一个变量值在添加完成后在变量清除和提交也清除,在进行跳转
syu 2008-12-16
  • 打赏
  • 举报
回复
防止刷新重复提交,用Session+表单隐藏字段的方法

设置session值如 forum1=0
正常提交后判断此session值,如果为0,就正常执行,执行完后将其置为1
下次再刷新提交时.此session已经为1了.不执行处理段.直接给跳走或者报错即可

ccjjww1222 2008-12-16
  • 打赏
  • 举报
回复
AJAX 无刷新提交
dzxccsu 2008-12-16
  • 打赏
  • 举报
回复
如果跳转不行,你可以用iframe框架控制或者用session判断了.这样就比较麻烦!
xiaodong101010 2008-12-16
  • 打赏
  • 举报
回复
unset($_REQUEST);
yongyuanjax 2008-12-16
  • 打赏
  • 举报
回复
学习。。。。。。。。。。
搬运工865 2008-12-15
  • 打赏
  • 举报
回复
跳转到自己这个页面
好象别的办法就复杂了
相随心 2008-12-15
  • 打赏
  • 举报
回复
用跳转的方法 ,就是跳转到本身这个页面 ,这样才能清除掉表单中的数据
tony1025 2008-12-15
  • 打赏
  • 举报
回复
判断是提交才写库
yeah86 2008-12-15
  • 打赏
  • 举报
回复
跳转不行,我的目的就是用户输入完成后就提交到index处理。处理完成后就在index里把所有的数据都显示出来。
但是,不能刷新,刷新的话刚才提交的数据又会重新写入数据库。index页面,肯定少不了刷新的。
清除$_POST 也没用啊!!
jlzan1314 2008-12-15
  • 打赏
  • 举报
回复
跳转
yeah86 2008-12-15
  • 打赏
  • 举报
回复
还有人知道么?
yeah86 2008-12-15
  • 打赏
  • 举报
回复
还是不行,你看看:
我代码是这样写的!!

if(isset($_POST))
{
$sqlstr="INSERT INTO `post`(`name`,`gender`,`photo`,`qq`,`email`,`ip`,`title`,`content`,`time_at`) values('$name','$gender','$pic','$qq','$email','$ip','$title','$content',NOW())";
mysql_select_db($dbname,$dbconn);
$result = mysql_query($sqlstr);
mysql_close($dbconn);
if($result>0)
{
echo "<script>alert('插入数据成功!')</script>";
}
unset($_REQUEST);
}
dzxccsu 2008-12-15
  • 打赏
  • 举报
回复
那你就在插入数据后面加上:unset($_POST)
yeah86 2008-12-15
  • 打赏
  • 举报
回复
就是插入数据后要跳到主页去。但是一刷新的话又会插入一条数据!!
dzxccsu 2008-12-15
  • 打赏
  • 举报
回复
你可以插入数据以后,面页重新跳转到表单页.

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧