0

開始セッションを呼び出すさまざまなメソッドとクラスがあり、エラーが発生することがあります"Failed to start the session because headers have already been sent"

セッションを開始するのに適した場所はどこでしょうか? リクエストごとに 1 回だけ呼び出される場所と、すべてのリクエストで呼び出される場所です。マスターコントローラーのような?

4

1 に答える 1

3

セッションを開始するには、次のことを行う必要があります。

use Symfony\Component\HttpFoundation\Session\Session;

$session = new Session();
$session->start();

Symfonyのドキュメントセッションの章には、次のように書かれています。

symfonyセッションは、いくつかのネイティブPHP関数を置き換えるように設計されています。アプリケーションは、session_start()、session_regenerate_id()、session_id()、session_name()、およびsession_destroy()の使用を避け、代わりに次のセクションのAPIを使用する必要があります。

編集

symfony / src / Symfony / Component / HttpFoundation / Session / Storage / NativeSessionStorage.phpを見てください(142行目)

ファイルsession.use_cookiesで有効になっていますか?php.ini

于 2012-10-16T23:55:50.213 に答える