| redfox 回复于:2003-09-01 11:07:50
|
返回用javascript:window.location=''
|
| echomeng 回复于:2003-09-01 12:06:27
|
[quote:35421203b3="redfox"]返回用javascript:window.location=''[/quote:35421203b3]
这个跟按后退是一样的,为了证实我也试了,还是需要刷新才可以。
|
| redfox 回复于:2003-09-01 12:21:57
|
这样也要刷新???
|
| kevinlei 回复于:2003-09-01 17:54:48
|
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
你的程序里是不是有类似的东西?
如果是,就删这一句
如果不是,那么请问你的服务器是APACHE 还是 IIS?
|
| redfox 回复于:2003-09-02 07:54:46
|
window.location 和 返回当然是不一样的, window.location 等于重新载入一个页面,不可能还在提交状态。
|
| echomeng 回复于:2003-09-02 10:44:16
|
[quote:40e80743d9="kevinlei"]header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
你的程序里是不是有类似的东西?
如果是,就删这一句
如果不是,那么请问你的服务器是APACHE 还是 IIS?[/quote:40e80743d9]
程序是我编的,没有加额外的任何header命令
服务器是linux8 + apache
谢谢!
|
| echomeng 回复于:2003-09-02 10:45:23
|
[quote:6b43d38fb9="redfox"]window.location 和 返回当然是不一样的, window.location 等于重新载入一个页面,不可能还在提交状态。[/quote:6b43d38fb9]
我的意思是,这样别人表单就要重填了!
而且只能通过js实现,如果这样的话我用header发送location也是一样的。
|
| redfox 回复于:2003-09-02 12:54:53
|
可以用cookie或session来保存用户信息。
|
| wubai 回复于:2003-09-02 15:58:50
|
在填写信息页面加上这句话试试看:
session_cache_limiter("private");
The cache limiter is reset to the default value stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_limiter() for every request (and before session_start() is called).
|
| echomeng 回复于:2003-09-02 20:25:58
|
[quote:aa37413803="redfox"]可以用cookie或session来保存用户信息。[/quote:aa37413803]
不是啊,这个是注册表格啊
|
| echomeng 回复于:2003-09-02 20:28:38
|
[quote:9b116ec5a4="wubai"]在填写信息页面加上这句话试试看:
session_cache_limiter("private");
The cache limiter is reset to the default value stored in session.cache_limiter at request startup time. Thus, you need t..........[/quote:9b116ec5a4]
这个好像可以了,这句我好像在很多资料里都没找到嘛,什么意思?
|
| HonestQiao 回复于:2003-09-03 10:10:14
|
这样子啊,把输入的变量写道填写表单,输出给用户急需填写阿
|
| freebee 回复于:2003-09-03 15:12:28
|
[quote:22be315b5d="redfox"]返回用javascript:window.location=''[/quote:22be315b5d]
请问一下
我的php每页都有设header
在提交之后如回返回就会出现一样重新提交的信息
如果按了刷新就会重复提交信息
该怎么预防
如果使用javascript:window.location=''
那我连按两次返回又会有这样的问题了
|
| redfox 回复于:2003-09-03 16:20:57
|
说实话,一般应用很少会考虑得这么周全。可以在提交前注册一个session或cookies变量,提交成功后立即注销该变量。在提交页用这个变量来判断是否执行sql语句,这样即使按后退再次提交了表单也无法对数据造成影响。
|
| echomeng 回复于:2003-09-03 22:17:05
|
[quote:f7f9cab68d="freebee"]
请问一下
我的php每页都有设header
在提交之后如回返回就会出现一样重新提交的信息
如果按了刷新就会重复提交信息
该怎么预防
如果使用javascript:window.location=''
那我连按两次返回又会有这样?.........[/quote:f7f9cab68d]
本人记得曾经回答过这个问题,请查找一下吧
|
| tonera 回复于:2003-09-04 09:34:38
|
http://www.chinaunix.net/forum/viewtopic.php?t=144327
|
| syshome 回复于:2004-04-18 21:33:30
|
我的解决方案
第一,把form的提交方式由post改为get方式。
第二,把get方式提交的变量在检查错误的程序中捕获出来。出错后不要后退,重新定位到你的页面pageself?xxxx=xxxx&xxxx=xxxx....,重新定位的页面可以编一个函数,供其他程序重复使用的。
我觉得这是最好的解决方案。但有一个问题就是:get方式提交的总长度好像是有限制的,不过对于会员注册是没有问题的。另外注意的就是,你的第一个注册页面所有表单中的value值应该设置一下。
|
| huabingl 回复于:2004-05-28 15:36:19
|
如何实现本页的提交表单给本页处理?
|
| chick0613 回复于:2004-06-06 14:23:35
|
<a href="javascript:window.history.back()">修改</a>
|
| laokan 回复于:2004-06-09 23:10:19
|
但是又有了问题了就是
如果再次打开这个页面的话就又完了
虽然数据库中的数据已经更新,但是这里的数据却还是老样子。
这个又是个问题
session_cache_expire (0);
不知道这个能不能解决些问题。但是我找不到合适的地方放它!
|
| yejr 回复于:2004-11-26 11:31:59
|
http://www.phpe.net/faq/73.shtml
|
| xmlv 回复于:2004-11-26 11:54:23
|
up
|
| HonestQiao 回复于:2004-11-26 16:03:41
|
这么简单的问题,还要回答阿./
你去往上看看验证码的问题吧,就是为了防止用户重复提交的.
提交的时候,生成填表页面随机设置一个session的数字ID,然后把这个数字ID通过图片发送到页面,要求用户输入,如果不输入,就不处理啊.
|
| echomeng 回复于:2004-11-27 17:23:05
|
[quote:3e198ad211="HonestQiao"]这么简单的问题,还要回答阿./
你去往上看看验证码的问题吧,就是为了防止用户重复提交的.
提交的时候,生成填表页面随机设置一个session的数字ID,然后把这个数字ID通过图片发送到页面,要求用户输入,如果不输入,?.........[/quote:3e198ad211]
老大,看看梯子的内容吧,回答的不搭界啊,呵呵
|
| tmdxy 回复于:2005-08-18 02:37:14
|
第一页就有人回答了,
再给个详细的:
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般
|