如何让代码只运行一次

时间:2012-12-30 07:57:46

标签: php session cookies

如何让代码只运行一次 我正在开发一个zencart网站,我想让php在用户第一次打开我的网站时更新网站设置信息,但之后不再运行这些代码。怎么做?

<?php 

    //how to let codes runs only one time.
    //cookie and session? 
    function first_time_run(){
        //lot of code runs when user  open my site at first time in browser (such  as ie ,firefox)
        //but when it go to other page of my site or reenter my same page ,these codes will not run any more;
        //but if user reopen the browser , then enter my site ,thes codes will runs again
    }

    if($what){
        first_time_run();
    }

?>

2 个答案:

答案 0 :(得分:1)

使用会话变量。

if(isset($_SESSION['NEEDRUN'])){
 // run it
 // remove the session variable.
 unset($_SESSION['NEEDRUN']);
}

现在只有在设置了会话变量时才会运行。

答案 1 :(得分:1)

根据您的要求,shiplu的解决方案可能有效。但是,如果您只希望代码运行一次(即客户第一次访问该站点,执行某些操作,然后再从不执行此操作),则需要在数据库中存储某种用户标识符。如果您仅使用会话,则只要用户的会话结束(他或她离开站点,关闭浏览器等),该会话变量就不再存在。客户下次访问该站点时,该脚本将再次运行。

您还可以使用在用户离开网站后仍然存在的Cookie,但仍有限制。 Cookie必须到期(即使它们是从现在开始的一年)。当该cookie过期时,该脚本将再次针对同一客户运行。此外,用户可以清除他们的cookie,使用不同的计算机等,并打败你的first_time_run支票。

总而言之,唯一持久的解决方案是在数据库中保存某种客户标识符,并在用户访问您的网站时检查该字段。