Problém s kontrolou přihlášeného uživatele v Chrome

jedlicka
Člen | 61
+
0
-

Ahoj,

mám takový problém s kontrolou přihlášeného uživatele v Chrome.

V BasePresenteru (v metodě startup) mám kontrolu na přihlášeného uživatele, pokud uživatel není přihlášen, tak ho to přesměruje ze systému na webovou stránku (popřípadě na přihlašovací stránku):

<?php
protected function startup()
{
	parent::startup();

	if (!$this->user->isLoggedIn()) {
		$this->redirect("Web:"); // $this->redirect("Web:login");
	}
}
?>

Občas se u uživatelů stává, že pokud kliknout na home, tj. Homepage:default, tak se ve startup právě vyhodnotí, že uživatel není přihlášen. Zjistil jsem, že to dělá jenom na Homepage (na ostatních presenterech ne):

<?php
class HomepagePresenter extends BasePresenter
{
	...
}
?>

Jediné řešení je vždy v Chrome vymazat cache (pomocí Vymazání mezipaměti a úplné opětovné načtení, samotné CTRL+R nestačí!). Potom ten Homepage začne fungovat, ale po nějaké době se problém objeví znova.

Prosím, nějaká rada, nápad?

Není lepší tu kontrolu dělat až v action<Defaut>?

Díky moc.

Martin

Kamil Valenta
Člen | 758
+
0
-

Nesedí všichni ti uživatelé za nějakou společnou proxy? V uvedeném kódu problém není, prozkoumej si HTTP hlavičky a odpovědi.

jedlicka
Člen | 61
+
+1
-

No, napadl mě taky problém se session. Na jednom virtuálním serveru provozuji dvě domény. Na každé doméně běží stejná aplikace, takže obě využívají stejné PHP, takže třeba kolize PHPSESSID?

Kamil Valenta
Člen | 758
+
0
-

A dvě různé domény / app sdílejí jeden sess dir? Už to není moc dobře.

Pavel Kravčík
Člen | 1180
+
0
-

@kamil_v: Pokud mají stejné uživatele, bude to naopak výhoda. :) Ale těžko říct, jestli je to zamýšlené.