php - Symfony/Silex + Facebook SDK : Session Start conflict

标签 php facebook session symfony silex

如何在不更改原始源代码的情况下解决 session_start 冲突? Symfony 组件或 Silex 如何检查 session 是否已存在?

Notice: A session had already been started - ignoring session_start() in
myapp/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php on line 146

编辑:这是index.php的前几行

require_once __DIR__.'/vendor/autoload.php';

/**
 * from Heroku's Facebook template
 */
require_once('AppInfo.php');
require_once('utils.php');


use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Yaml\Parser;
use Silex\Provider\FormServiceProvider;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Currently using git submodule, will move to composer.json
 */
require_once('sdk/src/facebook.php');

$facebook = new Facebook(array(
  'appId'  => AppInfo::appID(),
  'secret' => AppInfo::appSecret(),
));

$app = new Silex\Application();
// ...

最佳答案

FB sdk 启动 session only if it's not started already 。将 sdk 初始化移到启动 silex session 的代码之后。

This是 Symfony2 用于查看用户是否有 session 的函数。本质上,它检查 session cookie 是否存在。

关于php - Symfony/Silex + Facebook SDK : Session Start conflict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309188/

相关文章:

facebook - FOFacebookBundle 打破了 FOSUserBundle 的 "remember me"

internet-explorer - Facebook/IE8 - session 未被保留

php - 对多维数组使用 in_array

php - 为什么 1...1 评估为 10.1?

Spring Security 2.0 Facebook 连接

Facebook 直播静态 URL

PHP-修复 session 刷新后才生效的问题

javascript - 如何使用 JavaScript 创建 session ?

PHP - For 循环仅向 MySql 写入一份提交

php - 使用 PDO php 在 mysql 中插入符号 (&)?