Vytvořený formuláře nereaguje
- pinky
- Člen | 3
Zdravím netťáky,
mám problém s vytvořením simpleAuthenticatorem. Snažím se postupovat
podle návodu,
ale ať odešlu cokoli, tak mi formulář vůbec nereaguje a zobrazí se mi
stejně jako před vyplněním. Vycházím ze SingPresenter.php, který je po
instalaci ze sandboxu. Myslím si, že na tom není co zkazit, ale asi
je :-).
SignPresenter.php:
<?php
protected function createComponentSignInForm()
{
$form = new Nette\Application\UI\Form;
$form->addText('username', 'Username:')
->setRequired('Please enter your username.');
$form->addPassword('password', 'Password:')
->setRequired('Please enter your password.');
$form->addCheckbox('remember', 'Keep me signed in');
$form->addSubmit('send', 'Sign in');
// call method signInFormSucceeded() on success
$form->onSuccess[] = $this->signInFormSucceeded;
return $form;
}
public function signInFormSucceeded($form)
{
$values = $form->getValues();
if ($values->remember) {
$this->getUser()->setExpiration('14 days', FALSE);
} else {
$this->getUser()->setExpiration('20 minutes', TRUE);
}
try {
$this->getUser()->login($values->username, $values->password);
$this->redirect('Homepage:');
} catch (Nette\Security\AuthenticationException $e) {
$form->addError($e->getMessage());
}
}
?>
config.neon:
nette:
security:
users:
admin: heslo
Soubor UserManager.php nebo jak se jmenoval jsem zrušil jako službu v konfiguračním souboru a smazal soubor z modelu. Po zadání parametrů do config.neon viz výše by přeci kontejner měl sám vědět, že chci vytvořit simpleauthenticator a měl by ho za mě vytvořit. Co jsem prosím vás přehledl?
- Šaman
- Člen | 2666
- Zkus nejdřív upravit tu zachytávanou výjimku tak, aby to bralo jakoukoliv výjimku (pokud by teď autenticator vyhodil jinou výjimku, třeba že se nemůže připojit k db, tak se nevykoná ani try, ani catch block).
- Pokud to nepomůže, tak do toho catch bloku přidej flashMessage (s tím vypisováním errorů jsem už jednou měl problémy, ale to bylo ruční vykreslování formuláře).
<?php
$this->flashMessage('Přihlášení selhalo. ' . $e->getMessage(), 'error');
?>
- Poslední test můžeš udělat tak, že si na začátek obslužné metody přidáš vyhození nové výjimky a uvidíš, jestli ti naběhne laděnka, nebo ne.
- Jestli selžou všechny možnosti, tak to nasdílej na GitHubu a napiš jakou máš verzi Nette. (Skutečně na GitHubu, nebo podobném serveru, kde si můžeme projít kód aniž bychom to stahovali k sobě do počítače. Zvýšíš tím výrazně šanci, že se na tvé zdrojáky někdo podívá a zkusí najít problém.)
- pinky
- Člen | 3
Chyba objevena, problém na mém webhostingu. Mám tam rozjetých pár jednoduchých webů. Zjistil jsem, že tam je nějaký problém s mod_rewrite, protože mi naskakují v logu apache errory a to
[Tue Feb 18 17:30:46 2014] [error] [client 10.4.193.254] File does not exist: /var/www/html/timotej/www/homepage, referer...
Zkusil jsem zakomentovat nastavený routeList a nahradit ho SimpleRoute a vše již funguje.
Díky Šamane, že jsi se mi snažil pomoci.