php 如何在页面刷新时不重复操作数据库?

做了一个网站libertyreserve的接口。实现网站会员通过接口充值后,返回相关数据到网站,在数据库中更新该会员的账户余额。现在的做法是:1、在网站上放置充值表单,点... 做了一个网站libertyreserve的接口。实现网站会员通过接口充值后,返回相关数据到网站,在数据库中更新该会员的账户余额。

现在的做法是:
1、在网站上放置充值表单,点击提交到libertyreserve的支付页面。
2、支付完成后,跳转到支付成功页面success.php。
3、success.php接受会员信息和充值信息,更新数据库。

(由于支付接口暂时不能用真实数据测试,我是直接将充值表单页面提交到success.php,在success.php中充值金额等信息直接用具体的值代入,来模拟接收到的数据)。

碰到的问题是:
1、如果按以上操作,到达success.php后,更新了数据库,但是每刷新一次页面,都会重复更新一次数据库。
2、使用页面重定向,支付成功后将success.php 重定向到suceess.html页面。
这是刷新页面不会碰到问题,但是如果直接在浏览器里输入success.php打开,每打开一次就又会出现重复更新数据库了。

这个该如何解决???

因为现在的测试都只是模拟的。不知道支付接口的网站是不是已经解决了这个问题,
在网上看到的方法是对表单页面处理,我想这个表单应该是对应支付页面的那个表单,他是属于libertyreserve接口网站的,我没法改?????
展开
 我来答
百度网友3c0062a
2012-08-16 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:31.5万
展开全部
这个问题首先是你自己设计导致的,想要避免也得改变你的设计,比如一种方式:可以将“直接在浏览器里输入success.php”设计为不能直接访问,以下是其中的两个实现方式。
1.将success.php放到一个不能直接访问的web路径下,在apache中.htacess可以控制访问。
2.控制可以自己来实现,设定一个参数,如果没有该参数则表示不能访问。
不知道是不是你想要的。
追问
正好是我刚刚想到的,禁止直接通过地址栏访问。    这个回答也正好提供了方案,是我想要的。

有一个疑惑就是,支付成功以后,需要跳到success.php这个页面,来接受数据和执行数据库操作。如果success.php 页面设置了不能直接访问,会不会使success.php的数据库操作就不能执行了????
缓步莫迟疑C
2012-08-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6528万
展开全部
看了个大概,提供一个思路,在页面中使用验证码,在执行任何动作前检查验证码,在验证码检查过后立即使其过期,这样你刷新时验证码就变了,就不会通过验证码检查,自然就不能执行后续代码了.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原来的我MsF
2012-08-16 · TA获得超过181个赞
知道小有建树答主
回答量:141
采纳率:75%
帮助的人:82.8万
展开全部
可以用cookie控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0c90796
2012-08-23 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1095万
展开全部
跳转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式