ローカル サーバーで Symfony2 セッションを使用できません。「通知: セッションは既に開始されています - session_start() を無視しています」というエラーが表示されます。
同じスクリプトが実稼働サーバーで正常に動作します。
Windows 7 で PHP 5.3.5 で Xampp を使用しています。php.ini でセッションの auto_start がオフになっています。
どんなヒントでも役に立ちます。ありがとう
ローカル サーバーで Symfony2 セッションを使用できません。「通知: セッションは既に開始されています - session_start() を無視しています」というエラーが表示されます。
同じスクリプトが実稼働サーバーで正常に動作します。
Windows 7 で PHP 5.3.5 で Xampp を使用しています。php.ini でセッションの auto_start がオフになっています。
どんなヒントでも役に立ちます。ありがとう
ちょっと遅いと思いますが、お役に立てれば:
php.ini で session.autostart がオフ (0) になっていることを確認してください。
Symfony 2 でコントローラーからセッションを使用する方法は次のとおりです。
$session = $this->getRequest()->getSession();
// store an attribute for reuse during a later user request
$session->set('foo', 'bar');
// in another controller for another request
$foo = $session->get('foo');
// use a default value if the key doesn't exist
$filters = $session->get('filters', array());
http://symfony.com/doc/current/book/controller.html#managing-the-session
またはビューから:
{{ app.session.get('foo') }}
また、セッション データの読み取り/書き込み時に自動的に呼び出される場合でも、start() を呼び出す必要があります (たとえば、推奨されており、getId() では呼び出されないため)。
$session->start();
$id = $session->getId();
http://symfony.com/doc/master/components/http_foundation/sessions.html
本番サーバーでエラーが発生しない理由は、優先度が「通知」のみであるためです。