Jen Formulare z Nette + pridat Session z Nette. Jak na session?
- JJ
- Člen | 5
Pouzivam z Nette jen formulare (a jsou paradni..) :)
V aplikaci pouzivam i session (nastavuji pomoci PHP), ale rad bych je
spoustel pres Nette.
Pokud spustim session z PHP nemuzu pouzit
$form->addProtection – Nette protestuje, ze nemuze
nastavit ‚session.gc_maxlifetime‘ na ‚10800‘.
Rozchodit jen formulare (podle dokumentace) je snadne:
require 'Nette/loader.php';
use Nette\Forms\Form;
Ale nedari se mi v Nette rozchodit Session tak, abych byl schopen nastavit expiraci a dalsi parametry, ktere nastavuju pres PHP. (Dokumentaci Nette jsem si prosel, ale jsem z ni zmaten.)
Muzete mi po lopate rici, jak a co je nezbytne nutne nacist, aby se mi pres
Nette spoustely i Sessions a dokazal nastavit zejm. expiraci,
session.cookie_secure, session.save_path ?
Soubory bootstrap a .neon mi zatim unika – neco jsem zkousel, ale nedopadlo
to.
Diky
Editoval JJ (28. 1. 2013 0:28)
- Šaman
- Člen | 2666
Ideální je začít projekt na čistém Sandboxu (ten je v dostribuci Nette
a obsahuje prázdný projekt). Jediné, co musíš upravit, abys pak měl
skutečně prázdný projekt jsou šablony @layout.latte a
homepage/default.latte.
Pak by mělo všechno fungovat a pokud ne, snad se doptáš tu. Za sebe mohu
říct, že jsem Session v Nette zatím neměl nikdy potřebu nijak nastavovat
a Session i addProtection()
používám.
- besanek
- Člen | 128
Rozjet samotné session nemusí být zrovna jednoduché, protože vyžaduje Http\Request a Http\Response. Netestoval jsem to a nejsem si jist čistotou řešení, ale mělo by stačit takhle. Snad to nebude dělat problémy.
$request = new Nette\Http\RequestFactory;
$request->setEncoding('UTF-8');
$request = $request->createHttpRequest();
$response = new Nette\Http\Response;
$session = new Nette\Http\Session($request, $response);
Pak už normálně pracuješ se třídou Nette\Http\Session.
Například životnost nastavíš tahle.
$session->setExpiration('+14 days');
Nicméně asi zauvažuj převést celou tvou aplikaci pod Nette, ušetříš si čas s podobnými experimenty.
Editoval besanek (28. 1. 2013 13:19)