Jak nastavit cookies a jak správně vytáhnout z DI IResponse?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Northys
- Člen | 29
Mám problém s vytvořením cookie. Snažím se po odeslání subscribe formu z vyskakovacího okna nastavit cookie na 1 rok.
Řekl bych, že to asi jen nastavuji na špatném místě (ale kde jinde než ve zpracování formu?).
Poradíte někdo, prosím? :)
<?php
namespace App\Presenters;
use Nette;
use App\Model;
use Nette\Application\UI;
/**
* Base presenter for all application presenters.
*/
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
/** @var Nette\Http\IRequest @inject */
public $request;
/** @var Nette\Http\IResponse @inject */
public $response;
public function beforeRender() {
parent::beforeRender();
// vyhazuje null
dump($this->request->getCookie('showSubscribe'));
}
protected function createComponentSubscribeForm() {
$form = new UI\Form;
// není důležité
return $form;
}
public function subscribeFormSucceeded($form, $values) {
// žádná chyba ve stylu "headers has been already sent"
$this->response->setCookie('showSubscribe', false, 60 * 60 * 24 * 365);
}
}
Editoval Northys (11. 8. 2014 7:25)
- David Matějka
- Moderator | 6445
A nebude spis problem tady ?:
$this->template->showSubscribe = ($this->request->getCookie('subscribe') == NULL) ? true : false;
jelikoz false == null (takze zkus pouzit ===)