如何让代码只运行一次 我正在开发一个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();
}
?>
答案 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支票。
总而言之,唯一持久的解决方案是在数据库中保存某种客户标识符,并在用户访问您的网站时检查该字段。