gpt4 book ai didi

php - 如何仅在开始时执行功能? Facebook PHP-SDK

转载 作者:行者123 更新时间:2023-11-30 23:17:28 27 4
gpt4 key购买 nike

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

有一个mysql函数很耗时,我希望这个函数只在用户登录后 session 开始时执行。

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

(如果 date()>datelaSTLogin 然后做点什么...)

你还有其他优雅的想法吗?

编辑:if ($_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>';

}


?>

最佳答案

使用 $_SESSION 不是一个选项吗?我会这样标记一个 session 变量:

$_SESSION['firstLogon'] = true;

然后您可以在每次运行时检查该变量。当它未设置(或不等于 true)时,您可以运行 mysql 调用。

这样您就不需要额外的数据库事件,您只需检查 session 变量。

关于php - 如何仅在开始时执行功能? Facebook PHP-SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com