页面很简单:
<form action="" method="post">
<input type="submit"/>
</form>
action为空,就是他自己。1、第一次打开这个页面时,是get请求;
2、当我点击了submit,就post请求他自己;
3、这个文件返回了结果,当然,显示的还是他自己;
4、此刻,我再点刷新,提示是否重复提交表单?难道他不认为这次的刷新还是应该以get请求吗?如何让它在post以后,点击刷新,然他仍然以get方式请求他自己?【注】:action必须提交到他自己,而不能是另一个文件。
<form action="" method="post">
<input type="submit"/>
</form>
action为空,就是他自己。1、第一次打开这个页面时,是get请求;
2、当我点击了submit,就post请求他自己;
3、这个文件返回了结果,当然,显示的还是他自己;
4、此刻,我再点刷新,提示是否重复提交表单?难道他不认为这次的刷新还是应该以get请求吗?如何让它在post以后,点击刷新,然他仍然以get方式请求他自己?【注】:action必须提交到他自己,而不能是另一个文件。
connection = keep-alive
我要如何用php代码只为这个页面断掉这个长连接?但是不能修改服务器的全局设置。这是个猜想,首先我暂时不懂如何断掉长连接,其次,我担心就算断掉了长连接,之前的session是否还有效?我仍然希望记住这个访客连接。
post能改成get么?
写个函数控制FORM的提交:
<form action="" method="post"
onsubmit="form_submit(<?php echo isset($_COOKIE['cookie'])?$_COOKIE['cookie']?'' ;?>)">
// 这个COOKIE在第一次POST过后生成.
....
<script>
function form_submit(cookie)
{
return cookie==''?true:false;
// 不存在COOKIE提交,否则不提交..
}
</script>
看看这个思路行不行..
我设置了<?php header('connection: close')?>,并监测到的确没有保持长连接了,但是刷新后仍然提示重复提交表单。我恍然大悟到,改页面的request= "POST ****.php HTTP/1.1",这个是不会变的,看来修改长连接的方式行不通。
为能想到唯一可能的方式就是header跳转到他自己了。header('location: 他自己的文件名'); //成功!!!!!!!!!!!!!!!!!!!!
Oh Yeah!!!!!
if($_SERVER['REQUEST_METHOD']=='POST'){
header("location: /test/post2get.php");
}
?>
<form action="" method="post">
<input type="submit"/>
</form>补充一点,为了配合SEO,最好给每次跳转找一个合适的理由,但最好不要是302跳转
到底用什么返回代码,需要研究研究。200就挺好,那么有其他更合适的吗?
可以做到你想到的结果
如果验证成功,就header到某页面(可以是同一个php文件但是显示成功信息),
如果不成功,继续显示原form和错误信息这个是很多现有php软件的做法