如何仅在开始时执行函数?Facebook PHP-SDK

如何仅在开始时执行函数?Facebook PHP-SDK,php,mysql,facebook,session,sdk,Php,Mysql,Facebook,Session,Sdk,我创建了一个facebook应用程序,它是一个基于PHP和一些mySQL函数的网站 有一个mysql函数需要花费很多时间,我希望这个函数只在用户登录后的会话开始时执行 目前我的次优解决方案是,在用户启动我的应用程序后,如果他今天已经启动了应用程序,我会在sql数据库中进行检查,如果是的话,那么我会跳过耗时的函数(如果每次用户启动应用程序时我都检查它会更好) (如果date()>datelastlogin,则执行某些操作…) 你还有什么好主意吗 编辑: 使用if($\u SESSION['firs

我创建了一个facebook应用程序,它是一个基于PHP和一些mySQL函数的网站

有一个mysql函数需要花费很多时间,我希望这个函数只在用户登录后的会话开始时执行

目前我的次优解决方案是,在用户启动我的应用程序后,如果他今天已经启动了应用程序,我会在sql数据库中进行检查,如果是的话,那么我会跳过耗时的函数(如果每次用户启动应用程序时我都检查它会更好)

(如果date()>datelastlogin,则执行某些操作…)

你还有什么好主意吗

编辑: 使用if($\u SESSION['firstLogon']=true)的解决方案也不起作用:

这是我的密码:

    <?php
include_once($_SERVER['DOCUMENT_ROOT']."/config/config.php");
include_once($_SERVER['DOCUMENT_ROOT']."/config/facebook_config.php");
require_once($_SERVER['DOCUMENT_ROOT']."/script/facebook.php");
include($_SERVER['DOCUMENT_ROOT']."/config/connection.php");




function friends($userid){
    global $dbcon;
    //that is the time consuming function
    $query=.....

}

$facebook = new Facebook($config);
    $user_id = $facebook->getUser();
    if($user_id) {
        try {
            $user_profile = $facebook->api('/me','GET');



                if (!isset($_SESSION['firstLogon']))

                {
                echo "firstlogon";
                friends($user_id);
                }

        } 
         catch(FacebookApiException $e) {

        $login_url = $facebook->getLoginUrl( array(
                       'scope' => 'publish_stream'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {


      $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
      echo 'Please <a href="' . $login_url . '">login.</a>';

    } 


?>

是否使用$\u会话不是选项?我会将会话变量标记为:

$_SESSION['firstLogon'] = true;
然后,您可以在每次运行该变量时检查它。如果未设置(或不等于true),则可以运行mysql调用


这样,您就不需要额外的DB活动,只需检查会话变量

非常感谢,这将是完美的解决方案。我测试了它,但不幸的是它不起作用。如果脚本运行,仍然每次都执行。请参阅上面的代码详细信息。啊,但您没有正确使用会话-我错误地认为您知道如何使用会话。您必须首先启动调用session_start()的会话,每次都需要在页面顶部检查firstLogon变量。看这里:好的,我解决了,见上图。我将if条件更改为:if(!isset($_SESSION['firstLogon'])P.S.:SESSION_start()不适用于facebook PHP SDK,因为SDK会自动为您启动会话:)非常感谢!啊,好吧,我不知道。很高兴我能帮忙!:)我更新了它,见上文