Vytvořený formuláře nereaguje

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pinky
Člen | 3
+
0
-

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?

David Matějka
Moderator | 6445
+
0
-

jak formular vykreslujes?

pinky
Člen | 3
+
0
-

matej21 napsal(a):

jak formular vykreslujes?

{control signInForm}

Formulář se mi zobrazí, ale nic víc. Je možný, že je potřeba ještě přidat nějaký kód, aby to zobrazilo chyby, který by se zobrazili, ale protože mi tam ten kód chybí, tak se nic nezobrazí..

Šaman
Člen | 2666
+
0
-
  1. 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).
  2. 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');
?>
  1. 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.
  2. 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
+
0
-

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.