PHP插入数据后再刷新,又插入了一条。怎样解决? 我从HTML表单里接受数据,然后插入数据库,但是,如果再刷新一下页面的话,又会插入一条相同的数据请问如何做才能保证不再插入这种内容。而必须要由表单提交过来的数据才能被插入呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那你就在插入数据后面加上:unset($_POST) 还是不行,你看看:我代码是这样写的!!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);} 跳转不行,我的目的就是用户输入完成后就提交到index处理。处理完成后就在index里把所有的数据都显示出来。但是,不能刷新,刷新的话刚才提交的数据又会重新写入数据库。index页面,肯定少不了刷新的。清除$_POST 也没用啊!! 如果跳转不行,你可以用iframe框架控制或者用session判断了.这样就比较麻烦! 防止刷新重复提交,用Session+表单隐藏字段的方法设置session值如 forum1=0正常提交后判断此session值,如果为0,就正常执行,执行完后将其置为1下次再刷新提交时.此session已经为1了.不执行处理段.直接给跳走或者报错即可 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");} 上面那段不对.没看到你有echoif(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);} 在你的代码里面 添加这个 header('Location: #####'); ### 这个是你的提交PHP文件 重定向一下就OK了 串口数据缓冲问题 关于Eclipse PDT的文件夹视图 如何让Zend Studio 看到htaccess 文件??? 问一个关于MYSQL里SELECT做判断的问题! 公司网站服务器带宽突然增高 求救 急! 请教百度商桥的安装和使用方法 邮件发送系统的用户名怎么设置 50分跪求,在线等。ecmall与UCenter通信失败 discuz中关于去掉外部链接功能后flash视频显示的问题 请问这个地方输入框的“默认说明”为什么不会消失 zendstudio调试 装了zend,要调试还再次安装PHP环境吗?MySQL也要重装吗? 请问这个网站用到了哪些技术?我要仿建一个需要些什么?
我代码是这样写的!!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);
}
但是,不能刷新,刷新的话刚才提交的数据又会重新写入数据库。index页面,肯定少不了刷新的。
清除$_POST 也没用啊!!
正常提交后判断此session值,如果为0,就正常执行,执行完后将其置为1
下次再刷新提交时.此session已经为1了.不执行处理段.直接给跳走或者报错即可
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");
}
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);
}