ρεйg 的个人资料简洁的想法照片日志列表 工具 帮助
2005/10/1

防止网页在刷新时重复提交

做法是这样的,首先在SESSION会话中定义一个变量refresh,使它在每次加载网页时自增1.

  1. <?php
  2. if(!isset($_SESSION['refresh'])){//$_SESSION['refresh'] 用来防止重复提交数据
  3.     $sess->my_session_register("refresh");
  4.     $_SESSION['refresh'] = 1;
  5. } else {
  6.     $_SESSION['refresh']++;
  7. }
  8. ?>

提交表单时,加入参数$_SESSION[’refresh’]:

  1. <form action="?action=blabla&refresh=".$_SESSION['refresh']."  method=\"post\" name=\"abc\"  />

在处理表单的函数部分,加入一个条件,如果 $_GET[’refresh’]== $_SESSION[’refresh’] - 1,则继续。

这样在浏览器地址栏的refresh=后面的值在按刷新按钮的时候是不会变的,而加载一次网页 $_SESSION[’refresh’] 则会加1,在这种条件下,$_GET[’refresh’] 是不会等于 $_SESSION[’refresh’] - 1的,防刷功能成功实现。

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://zpvip.spaces.live.com/blog/cns!BDF2257D6BCC1CC2!324.trak
引用此项的网络日志