Co mi Nette provedlo se sessions?
- SvvimX
- Člen | 65
Na webu (hosting WEDOS) sem měl uplně easy aplikaci – přihlásím se,
do $_SESSION[‚login‘] se dá true, na jiné stránce if (
$_SESSION[‚login‘] ) vypíše něco. Na začátku skriptu
session_start();
Fungovalo to dlouhé měsíce.
Teď jsem tam nahrál aplikaci v Nette, která má v config neon:
php:
date.timezone: Europe/Prague
session.save_path: "%tempDir%/sessions"
# zlib.output_compression: yes
nette:
session:
autoStart: smart
gc_maxlifetime: 1209600
od té doby mi $_SESSION (v jiném adresáři/jiné aplikaci) nefunguje, resp v rámci 1 skriptu ano, ale session nepřežije redirect. Přitom aplikace v Nette funguje v pořádku, přehlédl jsem něco, co dělá Nette se sessions?
- Jan Tvrdík
- Nette guru | 2595
@SvvimX: Není to spíš tím, že ty aplikace sdílí stejnou cookie se session identifikátorem?
- SvvimX
- Člen | 65
Myslíš ten klíč v poli ‚login‘ nebo ještě něco jiného? klíče jsem zkusil měnit, tím to není.
Eště mi došlo, že jsem měl vypnuté error_reporting, takže web píše:
Warning: session_start() [function.session-start]: open(/data/web/virtuals/19209/virtual/session/sess_e51f53de09185cc1a130968b57c1d6c9, O_RDWR) failed: No such file or directory (2) in /data/web/virtuals/19209/virtual/www/domains/nhl.ondrej-sejvl.cz/index.php on line 6
Není to tím, že Nette si ukládá sessiony do svého adresáře? Přejme pak ta nastavení celý hosting?
Editoval SvvimX (21. 5. 2013 17:16)
- petr.pavel
- Člen | 535
Taky myslím, že to je tím, že Nette ukládá session do jiného adresáře, kdežto zbytek webu nadále hledá soubory session v adresáři starém. Prostě buď zakomentuj session.save_path v config.neon, nebo pro zbytek webu volej session_save_path().
Edit: Nebo jak naznačoval Honza, můžeš změnit název session cookie pro jedno nebo druhé. Z hlavy ti ale neřeknu, jak se to dělá.
Editoval petr.pavel (21. 5. 2013 17:24)
- SvvimX
- Člen | 65
hm, a jak se pak řeší např 2 aplikace v Nette na jednom hostingu? Protože to tam teď mám také :-) Vlastně mám 2 uplně stejné aplikace běžící paralelně, jedna v thesis.ondrej-sejvl.cz a druhá v ccm.ondrej-sejvl.cz jsou sice uplně stejné, ale postupně se budou měnit (ze začátku určitě jen DB, časem třeba i kód). všechno (a to včetně nette a dalších knihoven) mám prostě nakopírované 2× vedle sebe (ano, knihovny by mohly být jen jednou, ale to mě netrápí), obě aplikace vypadají, že fungují, je to tak tedy správně? Rozeberou si sessions pěkně, jak mají, když má každá nastaven ten save_path do svého tempu..?
- SvvimX
- Člen | 65
@Šaman alias čeho kam?
Localhostové aplikace mi kupodivu všechny fungují, nikdo nenadává, až teď na ostrém serveru se mi Nette změnilo session save path a ne-Nette aplikace hledala sessiony, kde neměla. Budu od teď dávat do configu session.name a pokud na jednom hostingu pojede víc aplikací, nastavím těm ne-Nette session save path.