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.