PHP中防止页面刷新反复提价数据到数据库

<?phpinclude'conn.php';session_start();$code=rand(0,1000);$_SESSION['code']=$code;if(... <?php
include 'conn.php';
session_start();
$code = rand(0,1000);
$_SESSION['code'] = $code;

if(isset($_POST['hid']))
{
if($_POST['hid'] == $_SESSION['code'])
{
$name = $_POST['name'];
$pwd = $_POST['pwd'];
$sql = "insert into user (id,name,pwd,regdate)value('','$name',md5('$pwd'),now())";
mysql_query($sql);
}else
{
echo "<script language='javascript'>alert('不要重复提交')</script>";
}
}
?>
<html>
<body>
<meta charset="utf-8"/>
<form action="reguser.php" method="post" >
<h4>用户注册<h4/>
<input type="hidden" name="hid" value="<?=$code?>"/>
<input type="text" name="name"/>
<input type="text" name="pwd" />
<input type="submit" name="sub" value="提交"/>
</form>
</body>
</html>
展开
 我来答
匿名用户
2013-09-29
展开全部
设计思路有问题

执行时先重设了$_SESSION['code'],然后再与$_POST['hid']做比较,除非两次rand()正好取到同一个值,否则肯定都是报重复提交

如果在执行完数据插入后再重置$_SESSION['code'],那就没法避免重复提交
追问
我想就在一个页面就处理好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjliuleidian
2013-09-29 · TA获得超过220个赞
知道小有建树答主
回答量:316
采纳率:100%
帮助的人:230万
展开全部
你这前台的code,和后台你获取到的code,能保持一致?

好吧,你放session里了,你这为了说明什么,和验证码有和区别?
追问
我想就在一个页面就处理好
追答
验证码
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangmingsong6
2013-09-29 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:64.6万
展开全部
我能想到的只有加一个验证码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式