Dnes tu mám návod pro hlupáky o zpracování GET a POST metod. V Nette existují v zásadě tři způsoby, jak se s tímto poprat.
1. klasicky PHPčkem $_GET[‚promena‘] nebo $_POST[‚promena‘]. Takto vytažené hodnoty však nejsou ošetření proti možným napadením.
2. nebo přes $get = $this->request->getParameters(). U POSTovaných hodnot pak přes $form->isSuccess(); někde v prezenteru, kde budete potřebovat.
3. nebo poslední metodou, tou asi nejsprávnější lze GET zpracovat přes router, který najdete v bootstrap.php. Aby Vám to fungovalo, musíte mít v prezenteru vytvořenou funkci na kterou se v routeru necháte přesměrovat.
Příklad pro login:
Protože, odhlášení bude měnit text ohlásit/přihlásit v menu, napsal jsem si do BasePresenteru do funkce beforeRender následující:
public function beforeRender() { if(isset($_COOKIE["login"])) { $this->template->loginStatusItem = 'Odhlásit'; $this->template->loginStatusLink = 'Login:Logout'; } else { $this->template->loginStatusItem = 'Přihlásit'; $this->template->loginStatusLink = 'Login:login'; }; }
v šabloně mám
<a n:href="{$loginStatusLink}">{$loginStatusItem}</a>
do routeru přidám pravidlo:
$container->router[] = new Route('logoff/', "Login:logout")
V prvních uvozovkách je url, které se zobrazí v aplikaci. V druhých pak prezenter:funkce, která se zavolá.
V prezenteru Login mám pak funkci
public function renderLogout() { ... kód, který provedu pro odhlášení uživatele };
Netvrdím, že je to 100% správně, avšak funguje to. Pokud máte někdo nějaké doplnění, sem s ním.
Je peux vous dire que c’est sans mentir une joie de passer sur
ce blog