InvalidStateException na produkčním serveru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
symmetry
Člen | 71
+
0
-

Zdravím, chtěl bych se zeptat, zda někdo netuší, co by mohlo způsobovat níže uvedenou hlášku?
Na localhostu se neprojevuje, na produkčním serveru ano, snažil jsem se vypnout
register globals pomocí htaccess direktivy php_flag register_globals off
Ale bohužel se stejným výsledkem.
Minimální konfigurace je splněna, tak jsem měl za to, že by takovýto problém neměl nastat, viz:
http://preview.webcorporate.cz/…/checker.php?…

Díky za každou radu.

Fatal error: Uncaught exception ‚InvalidStateException‘ with message ‚Cannot send session cache limiter – headers already sent (output started at /home/www/webcorporate.cz/preview/travel_agency/admin/db_connect.php:29)‘ in /home/www/webcorporate.cz/preview/travel_agency/admin/libs/nette-0.9-PHP-5.2/Nette/Web/Session.php:117 Stack trace: #0 /home/www/webcorporate.cz/preview/travel_agency/admin/libs/nette-0.9-PHP-5.2/Nette/Web/Session.php(346): Session->start() #1 /home/www/webcorporate.cz/preview/travel_agency/admin/libs/nette-0.9-PHP-5.2/Nette/Forms/Form.php(244): Session->getNamespace(‚Nette.Forms.For…‘) #2 /home/www/webcorporate.cz/preview/travel_agency/admin/index.php(12): Form->addProtection(‚Rozpozn??n poku…‘) #3 {main} thrown in /home/www/webcorporate.cz/preview/travel_agency/admin/libs/nette-0.9-PHP-5.2/Nette/Web/Session.php on line 117

Editoval symmetry (22. 11. 2009 18:01)

Ondřej Brejla
Člen | 746
+
0
-

Možná zkusit nastartovat session už v bootstrapu?

symmetry
Člen | 71
+
0
-

Jenže já nepoužívám MVC model, s Nette začínám.
Session startuji již při načítání přihlašovacího formuláře.

Ondřej Mirtes
Člen | 1536
+
0
-

Výstup ti začíná v db_connect.php na řádce 29, tak se podívej, co se tam vypisuje.

symmetry
Člen | 71
+
0
-

db_connect.php je ale plně v pořádku. Tak už vážně nevím,,

Ondřej Brejla
Člen | 746
+
0
-

Tak nám ho sem pastni a označ, který že řádek je ten 29…nebo zkus jít do hloubky, něco nekálého se ti tam děje ;-)

Ondřej Mirtes
Člen | 1536
+
0
-

Já tipuji, že na řádku 29 bude připojení k databázi a to vyhodí nějaký error či výjimku.

lucass
Člen | 89
+
0
-

Já toto včera řešil půl dne. Nějak mi nejde do hlavy, proč v DEVELOPMENT módu při vypisování na výstup před session neva, ale v PRODUCTION ano (na localhostu mi to prostě fungovalo bez problémů, po zkopírování na server jsem musel i při naprosto stejném nastavení PHP debugovat). A nejhorší je, že hodí Internal Server Error:) Jestli mi někdo dokáže objasnit tu session fíčurku, budu rád.

Jinak pro symmetry: v boostrapu si nastav toto:

<?php
...

// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Debug::enable(Debug::DEVELOPMENT);
Debug::enableProfiler();
Debug::$strictMode = TRUE;

// nastaveni modu pro vyvoj
Environment::loadConfig(APP_DIR . '/config.ini');

// Step 3: Get the front controller
$application = Environment::getApplication();
$application->catchExceptions = FALSE;

...
?>

To ti helfne při hledání problému. A pokud je to o session jako u mě, nastartuj ji také v boostrapu, jak tu už psali kluci.

<?php

Environment::getSession()->start();

?>

Dej to např. za loadConfig().

symmetry
Člen | 71
+
0
-

U jiného hostingu naprosto bez problémů..a to checker pro nette hlásí totožné podmínky.

David Grudl
Nette Core | 8228
+
0
-

Rozdíl bude v konfiguraci PHP, konkrétně těchto direktiv