防止代码或函数执行多次

时间:2011-11-14 02:18:01

标签: php request execute

即使我重新执行(或重新加载)PHP文件,有没有办法阻止代码块或代码中的函数多次运行?

我的意思是,我可以限制某人不止一次执行php脚本吗?我似乎无法找到这样做的方法。

4 个答案:

答案 0 :(得分:2)

是的,您可以使用$ _SESSION变量来确定代码是否已执行。会话变量将被设置,直到用户关闭其浏览器。如果您想进一步扩展它,可以设置cookie。有关详细信息,请参阅以下链接。

Session Variables

Cookies

答案 1 :(得分:2)

如果您正在使用会话,那么您可以在代码执行后在用户的会话数组中设置一个标志:

function doSomething(){

   if (empty($_SESSION['completed'])){
      //Do stuff here if it has not been executed.
   }

   $_SESSION['completed'] = TRUE;
}

您还应该检查sesison变量以查看该任务是否先前已执行过。这假定用户可以接受会话cookie。

答案 2 :(得分:1)

只需在计算机中放置一个计数器。如果计数器大于0,则不要做任何事情。计数器变量应该是静态的,因此它会在多次调用中“记住”。

function sample() {
     static $call_counter = 0;
     if ( $call_counter>0 ) {
         return;
     }
     ...
     $call_counter++;
 }

至于确保文件只执行一次,只需使用“include_once()”而不是“include()”。

答案 3 :(得分:1)

我有一个应用程序可以做到这一点。

我们所做的是在db中创建一个名为version的表,并在其中存储一个版本号。运行脚本时,它将数据库中的版本号与php脚本中的版本号进行比较。并执行将其“升级”到新版本所需的任何内容,然后更新数据库中的版本号。

但是,如果版本表不存在,代码将创建它并将其标记为存储版本零。