Înregistrarea și autorizarea utilizatorilor

Pregătirea

În primul rând, vom crea baza de bază Base.php în aplicația / classes / Controller:

După cum puteți vedea, este mostenit de la controlerul Controller_Template și șablonul principal "principal" este instalat, creați acest fișier în folderul application / views / main.php:







El va afișa formularul de autentificare pe site, să îl creăm doar în folderul application / views / form_login.php:

După cum puteți vedea în conținut, formularul de înregistrare registration_form este încărcat, să-l creăm, de asemenea, în folderul application / views / registration_form.php:

Configurarea bazei de date

Un punct important. asigurați-vă că adăugați Cookie :: $ salt = 'jh50sornxh62kx8enhg'; înainte de conectarea modulelor.

Copiem configurația bazei de date din module / database / config / database.php în aplicația / config / database.php, în care vom configura conexiunea:

În acest fișier, setați baza de date gazdă, nume de utilizator, parolă, dbname în baza de date. La rădăcina modulului orm este fișierul modules / orm / auth__schema__mysql.sql, executați-l, de exemplu, în phpmyadmin și vom avea 4 tabele:

Asta e, configurația BD sa terminat.







Formular de înregistrare

Noi copiem fișierul modules / auth / config / auth.php în aplicația / config / auth.php, schimbați driverul în el la orm, instalați hash_key și session_key. Ar trebui să fie ceva în calea acestui lucru:

Apoi, în metoda action_registration, atunci când creați un utilizator, creați acest hash și stocați-l în baza de date:

De asemenea, a fost adăugată pagina contului personal din aplicația / views / user_profile.php:

A adăugat o acțiune către controlul utilizatorilor pentru a dezabona utilizatorul, action_logout:

dacă (HTTP_Request :: POST == $ this-> request-> metoda ()) $ post = Validare :: fabrică ($ _ POST);
$ post -> rule (true, # 'not_empty #')

-> rule (# 'username #', # 'min_length #', matrice (# ': valoare #', 26))
-> rule (# 'username #', # 'max_length #', matrice (# ': valoare #', 35))
-> rule (# 'username #', # 'alpha_numeric #', array (# ': valoare #', adevărat))

-> regula (# 'email #', # 'email #')

-> rule (# 'password_confirm #', # 'potrivește #', array (# ': validation #', # 'password_confirm #', # "parola #"));

dacă ($ post -> check ())

$ user = ORM :: fabrică (# 'Utilizator #') -> create_user ($ _ POST, array (# 'username #', # 'password #', # 'email #'));

Auth :: instanță () -> force_login ($ _ POST [# 'email #']);
HTTP :: redirecționare (# '/ set #');
> altul var_dump ($ post -> erori ());
>
>

Codul meu fără model nu funcționează (((De ce?

Codul meu a început fără erori, prin urmare:
1. Poate că nu aveți module auth, orm.
2. De asemenea, este posibil să nu treceți validarea în ORM, în mod implicit există o restricție în Model_Auth_User pentru o lungime minimă de parolă de 8 caractere.







Trimiteți-le prietenilor: