Po přihlášení dojde k okamžitému odhlášení bez důvodu v $user->getSignOutReason()

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

Ahoj všichni,

mám menší problém s přesunem projektu na ostrý server. U mě doma na vývojovém stroji funguje přihlašování/odhlašování perfektně, ale po přesunu na server (hosting tojeono.cz) mi po vyplnění jména a hesla dojde k zalogování, tj dostanu se z renderLogin() na renderDefault(), ale tam hnedka na první řádce zjistí že nejsem zalogován a tak mě to zvesela vrátí na logovací stránku. A když si nechám vypsat důvod odhlášení přes:

$this->user->getSignOutReason();

tak se mi vrátí prázdno a ani v logách se nic podezřelého neobjeví.

Zdrojové kódy jsem zabalil a umístil na: http://data.aikidohostivar.cz/beta.zip

Netuší někdo prosím kde dělám chybku, strávit jeden již večer pročítáním všech místních příspěvků, ale žádný nevedl ke zdárnému vyřešení mého problému.

EDIT: hodnotu

$this->user->setExpiration('+ 30 minutes');

nastavenou mám. To bylo první co jsem si zkontroloval.

Děkuji moc,
Petr MAŠÁT

Editoval tachyon (15. 4. 2010 1:44)

Honza Kuchař
Člen | 1662
+
0
-

A jak máš nastavené sessions?

Petr Mašát
Člen | 101
+
0
-

Sessions mám nastavené v bootsrap.php pomocí:

$session = Environment::getSession();
$session->setExpiration('+ 14 days');
$session->start();
Petr Mašát
Člen | 101
+
0
-

Tak už se začínám přibližovat k jádru problému. Všiml jsem si že i když mám v bootsrap.php nastavené session jako

$session = Environment::getSession();
$session->setExpiration('+ 14 days');
$session->setSavePath(dirname(__FILE__) . '/sessions/');
$session->start();

tak se mi v adresáři session nic nevytváří. Tak jsem zkusil udělat rychlý testík s Čítačem přístupu a ono to zůstává stále na hodnotě 1. → nezapisují se session i když mi firefox hlásí že nějaké pro tuto doménu má. Mno nic, jdu zkoumat dále.

Petr Mašát
Člen | 101
+
0
-

Tak už jsem asi objevil jádro problému. Sice nastavuji

$session->setSavePath(dirname(__FILE__) . '/sessions/');

ale v phpInfo(); jsem se dočetl že mám hodnotu session.save_path nastavenou stále na /home/www/aikidohostivar.cz/php_sessions, kde se skutečně vytváří nové session.

Pln naděje jsem zkusil cvičně i nastavit v bootsrap.php

$session->setSavePath('/home/www/aikidohostivar.cz/php_sessions/');

chybu to nezařvalo → adresář to našlo, ale ani session se nezapsala : (

Takže nyní jen nevím zda tohle je chybka v kódu/nette a nebo to musím nějak donastavit. Netuší někdo prosím?

Honza Kuchař
Člen | 1662
+
0
-

requirements checker nehláší žádné chyby?

Petr Mašát
Člen | 101
+
0
-

To vypadá že je v pořádku: http://test.aikidohostivar.cz/checker.php?…

EDIT: teda až na ty dvě varování, ale ty by snad neměli ovlivnit sessions ne?

EDIT2: Aby to bylo komplet tak i výpis z phpInfo(); http://test.aikidohostivar.cz/index.php

Editoval tachyon (16. 4. 2010 23:58)

Petr Mašát
Člen | 101
+
0
-

Ahoj všichni,

nechápu – začalo to zničeho nic fungovat. Nic jsem tam nazměnil, jen jsem si všiml že někdo promazal adresář /home/www/aikidohostivar.cz/php_sessions.

Sice mi stále nejde nastavit ukládání sessions někam jinam nežli je asi na tomto (tojeono.cz) hostingu defaultně nastavené, ale hlavní je že to již funguje.

Nemáte náhodou někdo také u tojeono.cz hosting? Přpadně jak máte prosím Vás nastavené $session->setSavePath()? A nebo to necháváte na případném nastavení hostingu?

Jinak díky moc za pomoc,
Petr MAŠÁT

Ola
Člen | 385
+
0
-

Kde voláš to phpinfo()? Nemění se to ani když to dáš až za volání $application->run()? Má ta složka nastavená práva na 777?

Mikulas Dite
Člen | 756
+
0
-

V htaccessu by některé proměnné php měli být editovatelné, je to něco jako php_value param value. A některé servery můžou mít php4_value, resp. php5_value. Takže session path si můžeš nastavit (pravděpodobně) jako php_value session_save_path foo/bar/. Jestli to nepůjde, můžeš zkusit laborovat s session_save_pathsession.save_path atp.

Petr Mašát
Člen | 101
+
0
-

Ola: Volal jsem to hnedka po

require LIBS_DIR . '/Nette/loader.php';
Environment::loadConfig();

zkusil jsem to přesunout za $application->run(), bohužel to nepomohlo.

Mikulas Dite: Zatím bohužel bez kladného výsledku, ale zkusím s tím ještě dneska zaloborovat.

Není možné by měl prostě hosting tojeono.cz zakázáno změnu cety kam se ukládají sessions?

rokerkony
Člen | 122
+
0
-

jen pro úplnost, mám hosting u tojeono.cz také a dočkal jsem se takové odpovědi:

v prostredi sdileneho webhostingu neni mozne menit ulozeni session souboru z duvodu bezpecnosti – tato cesta je nastavena pevne v konfiguracnim souboru.

ale výše uvedený problém nemám, session mi fungují i z cesty nastavené v konf. souboru (zkoumal jsem to jen ze zvědavosti)…

Petr Mašát
Člen | 101
+
0
-

Tak to by odpovídalo proč mi to nešlo nastavit : )
Díky moc za doplnění informací. Od té doby co se to rozběhlo už s tím nenmám nejmenší problém.