我花了2个多小时在网上搜寻,试图解决这个问题.我试图以超过60秒的速度停止多个表单提交.这是我正在使用的.
session_start(); if (!isset($_SESSION['last_submit'])) $_SESSION['last_submit'] = time(); if (time()-$_SESSION['last_submit'] < 60) die('Post limit exceeded. Please wait at least 60 seconds'); else $_SESION['last_submit'] = time();@H_502_3@我在网站上发现了这一点,但是到目前为止还没能找到其他任何东西.我在开头的页面上有一些代码,用以前的页面POST结果进行数据库查询.我需要将$last_submit设置为某个值吗?任何帮助表示赞赏.
你有两个问题.首先,在第一次执行时,您将会话值设置为time(),因此第一次尝试将始终产生超出限制的错误.第二个问题是$_SESION中有拼写错误.
@H_502_3@尝试:
session_start(); if (isset($_SESSION['last_submit']) && time()-$_SESSION['last_submit'] < 60) die('Post limit exceeded. Please wait at least 60 seconds'); else $_SESSION['last_submit'] = time();@H_502_3@此外,应该注意的是,这不是万无一失的,因为用户可以拒绝cookie或删除会话cookie,以绕过您的支票.