Zadejte hledaný výraz...

Výpis chyby do formuláře

Zdravím. Snažím se vypsat chybu z vlastního Authenticatoru
do presenteru
. Tady už je jedno jakým způsobem zprávu vypsat. (addError nebo flashmessage). Problém je v tom,že laděnka mi vyhodí jen chybu (právě pomocí toho throw) a nevypíše se normálně do formuláře. V čem dělám chybu? Co jsem pročítal ostatní kódy, normálně to funguje a laděnka se nezobrazí.
Všem děkuji za jakoukoliv radu. Asi už jsem dost unaven že na to nemůžu přijít :)
27. 11. 2013 17:21:57
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970564
acidclick
verified
rating uzivatele
27. 11. 2013 17:49:11
NetteSecurityAuthenticationException
Pokud přihlašovací údaje nejsou platné, vyhodí autentikátor výjimku NetteSecurityAuthenticationException.
try {
// pokusíme se přihlásit uživatele...
$user->login($username, $password);
// ...a v případě úspěchu presměrujeme na další stránku
$this->redirect(...);
} catch (NetteSecurityAuthenticationException $e) {
echo 'Chyba: ', $e->getMessage();
}
a doporucuji si precist http://doc.nette.org/en/coding-standard, ten kod je otresnej
27. 11. 2013 17:49:11
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970563
Bohužel stále píše:
27. 11. 2013 17:50:57
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970562
acidclick
verified
rating uzivatele
27. 11. 2013 17:54:04
Mas nahore v souboru
use Nette;
?
27. 11. 2013 17:54:04
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970561
V šabloně mám i
a stále nic. S psaním kódu bych to nehrotil. Je x programovacích jazyků s xy dalšími styly jak psát kód. To je většinou věc názoru. Spíš mě zaráží, že v presenteru se nijak neodchytí chyba a nezobrazí ji ve formuláři místo aby to vyhodilo laděnku. Nechce se mi zbytečně nějak implementovat vlastní systém chyb a chci použít právě AuthenticationException.
27. 11. 2013 18:00:55
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970560
acidclick
verified
rating uzivatele
27. 11. 2013 18:06:17
to je uplne jedno co mas v sablone
try{
} catch(AuthenticationException $ex){
}
Ti zachyti pouze vyjimku, ktera je tridy AuthenticationException, nette vyhazuje vyjimku NetteSecurityAuthenticationException.
Takze bud musis mit
use NetteSecurityAuthenticationException;
...
} catch (AuthenticationException $e) {
nebo
use Nette;
...
} catch (NetteSecurityAuthenticationException $ex) {
nebo
} catch (NetteSecurityAuthenticationException $ex) {
27. 11. 2013 18:06:17
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970559
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
27. 11. 2013 18:06:42
Ty si tu chybu musíš chytit při přihlašování jak píše acidclick.
Ty vyhodíš při ověřování výjimku, že je něco špatně, to je ta výjimka throw new SecurityAuthenticationException ....
A v presenteru, kde zkoušíš uživatele přihlásit, musíš tu výjimku chytat sám, to je to co psal acidclick
tady to máš: http://doc.nette.org/cs/security
27. 11. 2013 18:06:42
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970558
acidclick
verified
rating uzivatele
27. 11. 2013 18:15:52
S psaním kódu bych to nehrotil. Je x programovacích jazyků s xy dalšími styly jak psát kód. To je většinou věc názoru.
Nechci znit nijak povysene a ano je to vec nazoru, ale clovek, ktery nechape jmenne prostory a odchytavani vyjimek na tohle mit nazor, nezlob se, nemuze.
Programuji v php, c#, node.js, na vysce do nas mastili javu, ale v zadnem s tehle jazyku jsem takovej coding style nevidel.
Byt tebou tak si nech poradit a nebastli si to podle sebe. Uvidis, ze to bude prehlednejsi a pak to pujde videt na produktivite.
27. 11. 2013 18:15:52
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970557
Nn, opravdu to není v namespace. Spíš mám chybu jinde. Raději zasílám celý kód. Namespace jsem neuváděl aby kód nebyl dlouhý.
27. 11. 2013 18:31:01
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970556
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
27. 11. 2013 18:54:44
no to ověřování máš nějaké divoké. Proč tam máš: $Autentication=$this->context->authenticator->authenticate(array($administrationLogin->values->Username,$administrationLogin->values->Password)); tohle místo ti podle mě vyhazuje tu špatnou vyjímku, kterou nechytáš a takhle se ani k authentikaci nemáš dostat. To by se mělo obstarat v $this->user->login
zkus to smazat a mělo by ti to fungovat
PS: když se podíváš do dokumentace: http://api.nette.org/2.0/source-Security.User.php.html#81-97 tak vidíš, že login si authetikator zavolá sám
27. 11. 2013 18:54:44
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970555
acidclick
verified
rating uzivatele
27. 11. 2013 19:16:28
trosku vic pracovat s ladenkou :) ten stack trace tam neni jen pro okrasu :)
27. 11. 2013 19:16:28
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970554
Díky kluci. Jste machři. Opravdu to bylo v tom řádku s voláním authenticate metody. I když nechápu proč jsem to tam cpal :D Jinak na struktuře kódu zapracuji. Už jen pro budoucí programátory, kteří na projektu budou možná pracovat.
27. 11. 2013 19:59:53
https://webtrh.cz/diskuse/vypis-chyby-do-formulare/#reply970553
Pro odpověď se přihlašte.
Přihlásit