网页重复提交的疑问
看下面的代码,得到的POST传入值,好像刷新多少次也存在不会消失,有什么方法可以让他用一次就消失,这样就不会重复提交了.
提交是本页提交,地址提交之后一直是
http://127.0.0.1/guestboard/browse.php?firstmesid=84&action=M
这样的话,每刷新一次提交一次,[color=red]第一次提交还会出来网页提示[/color]
[php]
if($_GET['action']=='M'){
$firstmesid=intval($_POST['firstmesid']); //获得隐藏传入值
$lastmesid=intval($_POST['lastmesid']);
$title=addslashes($_POST['title']); //获得回复提交页传入值
$content=addslashes($_POST['content']);
//执行数据库写入
$re_sql="insert into `guestbook`(`title`,`content`,`posttime`,`firstMesID`,`lastMesID`) values('$title','$content',now(),'$firstmesid','$lastmesid')";
if($mysqlconn->query($re_sql))
{
//断开连接
$mysqlconn->exited();
}else{
die("新回复写入失败!");
}
}
[/php] php的头部加如下代码:
header('Expires: '.date('D,d M Y H:i:s',mktime(0,0,0,1,1,2000)).' GMT');
header('Last-Modified:'.gmdate('D,d M Y H:i:s').' GMT');
header('Cache-control: private, no-cache,must-revalidate');
header('Pragma: no-cache'); 不起做用 一直有提示
又刷新提交好多 你是不是想只接受一次接受同一来源的提交?
那你可以通过如下技术:
1.后台检查ip,看是否重复
2.客户端提交时,url后加时间戳
还有,你这问题,不是问题,任何普通的web 开发者都会遇到的 $firstmesid=intval($_POST['firstmesid']); //获得隐藏传入值
用来对比某个值,
比如:
if($firstmesid == $cookiceid) //成立就进入
{
setcookie() //将cookiceid的值改变掉, 下次刷新它就进入不了了,.
} 不重复提交好像可以这样解决,但是同页面
地址栏还是那个地址,刷新一直会有网页提示
我弄不好 分开来了,提交一个页,回复一个页,再把不让刷新加到回复那里 可以单独做一个DB也来处理数据请求,处理完后跳转到你要看的页,这样就是GET方法,不管他怎么刷新都没用! 用js做一个简单的处理就可以了!
可以参考我做的提交的办法 ,目前是有效的防止了重复提交的问题
[url]http://www.juexiang.com/ForUserEditDiary.php[/url] 可以用cookie或者网页头部header过期不过期处理啊
还看见过用session_id处理的
页:
[1]
