怎样让浏览器后退时不显示网页过期,而显示原先的页面


所属类别:PHP

文章作者:未知

特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!


http://127.0.0.1/site/member_register.php?job=agreement&membertype=p一个会员注册链接,出现一个注册表格,提交后提示错误,然后就需要用户返回,但是我按返回后就出现警告:网页已经过期您申请的网页是用表单中提交的信息创建的。该网页已失效。由于有安全预警功能,InternetExplorer不会自动再次提交您的信息。要重新提交信息并查看该网页,请单击刷新按钮。这样就势必要注册人重新填写一遍表格,我以前通过perl编程好像不会有这种问题,为什么php就会这样呢?关键问题在于我做的有些页面它不会这样,有些就一定需要刷新有办法控制吗?比如通过发送网页头?[/i]

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,26Jul199705:00:00GMT");你的程序里是不是有类似的东西?如果是,就删这一句如果不是,那么请问你的服务器是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,26Jul199705:00:00GMT");你的程序里是不是有类似的东西?如果是,就删这一句如果不是,那么请问你的服务器是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");Thecachelimiterisresettothedefaultvaluestoredinsession.cache_limiteratrequeststartuptime.Thus,youneedtocallsession_cache_limiter()foreveryrequest(andbeforesession_start()iscalled).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");Thecachelimiterisresettothedefaultvaluestoredinsession.cache_limiteratrequeststartuptime.Thus,youneedt..........[/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=144327syshome 回复于: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 修改laokan 回复于:2004-06-09 23:10:19 但是又有了问题了就是如果再次打开这个页面的话就又完了虽然数据库中的数据已经更新,但是这里的数据却还是老样子。这个又是个问题session_cache_expire(0);不知道这个能不能解决些问题。但是我找不到合适的地方放它!yejr 回复于:2004-11-26 11:31:59 http://www.phpe.net/faq/73.shtmlxmlv 回复于:2004-11-26 11:54:23 upHonestQiao 回复于: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一般 关闭本页

相关信息

· 安装Linux 的硬盘分区

· .balign指令用法

· 常用的tar和rpm命令参数列表

· 可通过Flash传播的木马








....

116081 44796