Přihlašování uživatele – ne emailovou adresou
- lenkahub
- Člen | 12
Ahoj, potřebovala bych poradit s přihlašováním uživatelů. Má v db tabulku user a ve sloupečku username je přihlašovací jméno(emailová adresa). To mi funguje. Ale teď potřebuji přidat uživatele, kteří se nebudou přihlašovat emailem ale budou pod různými čísly. Takže ve sloupečku username bude např. RZ001.251.987. A když tohle vyplním do přihlašovacího formuláře tak mi to vyhodí hlášku: Do e-mailové adresy zahrňte znak @.
Nevíte někdo co s tím?
Moc děkuji všem za rady.
- Toanir
- Člen | 57
Ahoj,
pravděpodobně budeš mít na formuláři nastavenou validaci, pravděpodobně bude vypadat nějak takhle:
$form->addText('username', 'Login')
->addRule('Form::EMAIL');
Co se týče vstupu mělo by stačit odstranit to „addRule()“.
Jestli si můžu dovolit připomínku k návrhu:
Pokud zavádíš uživatelský kódy jak username, doporučil bych
u uživatelů mít rozdělený sloupečky pro username (předpokládám že
všechny username budou emaily) a pro idCode. V modelu potom mít
jakousi metodu
// syntaxe asi nebude správná ale jde mi o myšlenku
function findUserByLogin(string $login) {
$this->db->select('id', 'passwordHash')->from('user')
->where('username = ? OR idCode = ?', $login, $login)
->fetchOne();
}
Tohle dělení by mělo představovat jen trochu kódu navíc ale zajistí to, že by ses neměla zbláznit při zjišťování mailů až s tím budeš pracovat později :)
- Marek Bartoš
- Nette Blogger | 1280
validovat ještě metoda onValidate() a nebo i někde v onSuccess(), případně onSubmit()
Správně je onValidate()
Děkuji za radu, ale ->addRule() tam nemám.
Vždycky pomůže ukázat kód, který ti nefunguje, takhle jen hádáme. Též není patrné zda chceš, aby byl email a číslo v jednom inputu nebo ve dvou a mít vždy alespoň jeden z nich vyplněný