Instalace frameworku – test instalace

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

Po instalaci (dle návodu) jsem vyzkoušel test instalace, ale dostávám jen bílou stránku. V logu má tuto informaci:
06-May-2010 10:20:08] PHP Fatal error: Uncaught exception ‚InvalidStateException‘ with message ‚A session had already been started by session.auto-start or session_start().‘ in /home/www/asistent/libs/Nette/Web/Session.php:71

Poradíte co s tím? Dík za radu.

Majkl578
Moderator | 1364
+
0
-

Není náhodou v PHP ini zaplá direktiva session.auto_start?

svar
Člen | 2
+
0
-

Dík za odpověď, žel jde o webhosting, kde mají nastavenu tuto vlastnost na on. Tedy dotaz měl být spíš. Lze tohle nějak obejít?

Šaman
Člen | 2634
+
0
-

Zkus PHP funkci session_destroy(), pripadne unset($_SESSIONS)…

Tak jsem to zkusil sam, at tu neradim hovadiny a bohuzel se mi nepovedlo rozchodit nette sessions kdyz jsem dal na zacatek index.php prikaz session_start(). Napada me jen nepouzivat Nette sessions (zase tak moc ficurek nemaji) a holt se starat o session postaru. Anebo pockat na nejakeho guru.

Mikulas Dite
Člen | 756
+
0
-

Skoro jistě stačí dát místo

<?php
$session->start();
?>

kontrolu

<?php
if (!$session->isStarted()) $session->start();
?>
Šaman
Člen | 2634
+
0
-

Bohužel, skoro jistě ne. Ta výjimka, co mu vyskakuje, říká že existuje SID a přitom $session->isStarted() tvrdí, že není started.
Viz. API Session.php:65

Navíc doporučený přístup přes getNamespace() a getSessions() tuto kontrolu má.

Editoval Šaman (10. 5. 2010 15:54)

Mikulas Dite
Člen | 756
+
0
-

Šaman napsal(a):

Bohužel, skoro jistě ne. Ta výjimka, co mu vyskakuje, říká že existuje SID a přitom $session->isStarted() tvrdí, že není started.

Jo takhle.

A session had already been started by session.auto-start or session_start().‘ in /home/www/asistent/libs/Nette/Web/Session.php:71

Tvrdí, že session už běží, tzn. jestli opravdu isStarted vrací false, tak se vztahuje jenom na nette session.

K problému: jestli to zlobí na hostingu a tohle řešení ti postačí, můžeš dát

if (!Environment::isProduction) {
	$session->start();
}

Nebo napsat jinou kontrolu nastartované session, ale je to zbytečný.

jansfabik
Člen | 193
+
0
-

jestli můžeš používat .htaccess, zkus do něj přidat:

php_flag session.auto_start off