e-mail de confirmare
Și așa, condus! Pentru a începe cu, o mică schimbare în înregistrarea în sine forma. Prin înregistrarea cu diverse site-uri, este posibil să fi observat că multe forme de înregistrare, există un câmp pentru introducerea din nou parola. Acest câmp este adăugat pentru a confirma parola introdusă. Deci, în forma noastră de înregistrare și vom adăuga acest câmp „Confirmă parola“.
Adăugarea „Confirmare parolă“, în formularul de înregistrare
Pentru a adăuga acest câmp, deschideți form_register.php fișier cu formularul de înregistrare, și imediat după o serie de tabele cu un câmp pentru a introduce parola, adăugați un câmp „Confirmă parola“.
Prin urmare, se taie codul din fișierul header.php. cu tag-uri script și-l lipiți în fișierul form_register.php. la unitatea pentru a afișa mesaje. jQuery cod bibliotecă pentru conectare de rezervă în fișierul header.php.
Acum, fișierul form_auth.php deschis și adăugați același cod, cu etichete de script, ca la blocul pentru a afișa mesaje.
Acum, vom face modificări în funcție de tratare a evenimentelor, estompa. pentru parola de câmp. Înlocuiți vechiul conținut în acesta:
Acestea au fost modificările pentru verificarea câmpului în cazul în care parola este introdusă mai întâi. Aici, am testat aceste cazuri:
În cazul în care primul cod are o lungime mai mică de șase caractere și nu coincide cu parola din câmpul de confirmare a parolei, vom afișa ambele mesaje: „Lungimea minimă a parolei este de 6 caractere“ și „Parolele nu se potrivesc.“
În cazul în care primul cod are o lungime mai mică de șase caractere și coincide cu parola din câmpul confirma parola, vom afișa un mesaj de eroare numai pentru primul câmp: „Lungimea minimă a parolei este de 6 caractere“
Atunci când prima parola este mai mare de 6 caractere, dar nu coincide cu a doua parola, vom afișa un mesaj numai la al doilea câmp „Parolele nu se potrivesc“
Dar este de asemenea necesar să se verifice dacă parolele meci, după introducerea a doua parola. Adică, atunci când câmpul pentru a confirma parola pierde se concentreze, avem nevoie pentru a verifica dacă a doua parola coincide cu prima parola.
Codul, care este dată mai sus, în locația specificată „// (1) - loc pentru următoarea bucată de cod“ se adaugă următoarea bucată de cod:
Verificarea parole pentru un meci de pe partea de server
În fișierul register.php după linia unde Taiati lacune parola în matrice POST.
Adăugați codul în care verificați pentru a vedea dacă parolele se potrivesc.
Totul. Cu validarea server-side de parole, de asemenea, am finalizat. Dă-i drumul.
Pregătirea bazei de date
NOTĂ! e-mail de confirmare funcțională Am fost de a face pe site-ul real, ca și găzduirea deja înființat un funcțional și a trimite e-mail prin functia mail () funcționează fără probleme. Dacă aveți un site pe gazda locală, este totul la locul de muncă, trebuie să configurați serverul. Dacă utilizați pachetul Denwer, mesajele trimise vor fi salvate în folderul tmp /! Sendmail.
Pentru a începe cu, în formularul de înregistrare, ar trebui să adăugați o notă de faptul că utilizatorul trebuie să introducă un e-mail validă, pentru că pe ea vom trimite un mesaj cu un link pentru a confirma adresa.
Pentru a face acest lucru, deschideți form_register.php fișierul și imediat după eticheta de intrare pentru a intra în e-mail, adăugați un mesaj în interiorul tag-ul p.
Și totuși, la tag-ul de intrare, adăugați un atribut MAXLENGTH cu o valoare de 100. Cu acest atribut am stabilit numărul maxim de caractere de intrare.
În general, ne-am transformat acest cod:
Pentru mesajele de înregistrare de la paragraful, am adăugat tag-ul p, note_text clasa. Stiluri în această clasă sunt în fișierul css / styles.css.
Acum vom merge la dezvoltarea e-mail de confirmare funcțională.
Dar acest lucru nu este suficient. Avem nevoie de a crea mai mult de un tabel pentru stocarea temporară a utilizatorilor de date, care nu au confirmat încă de e-mail. Cum de a crea un tabel, am explicat în articolul Crearea unei baze de date MySQL în phpMyAdmin. Acest tabel va avea următoarele câmpuri: id, e-mail, jeton si date_registrtion. Și vom numi această masă confirm_users.
câmp jeton este proiectat pentru a stoca un cod unic. pentru fiecare utilizator. Acest cod am pus într-un link într-un e-mail, care va trimite utilizatorul la oficiul poștal.
Atunci când un utilizator face clic pe un link dintr-un e-mail, acesta va reveni la site-ul nostru, unde vom verifica pentru a vedea dacă codul din link-ul cu codul pe care este stocat în câmpul de jetoane. Și dacă sunt, atunci vom elimina datele de utilizator din tabelul confirm_users. iar utilizatorii schimba valoarea câmpului tabelul email_status 0 - 1.
Cu tabele din baza de date, ne-am dat seama, proceda la programarea e-mail de confirmare funcțională.
E-mailurile trimise pentru a confirma un e-mail
Prin urmare, în fișierul nostru register.php. eliminați codul care este în blocul de altceva. Acesta:
Și în schimb, vom scrie aici acest cod:
Acum, pentru a evita confuzia, necesitatea de a elimina liniile care sunt imediat după blocul altceva:
Și, în locul lor pentru a înregistra aici acestea:
Aceasta este acum o funcție de finalizarea cererii pentru a adăuga un utilizator în utilizatorii de masă ($ result_query_insert-> închide ()). Acesta este situat în interiorul blocului de altceva. dar nu pentru această unitate, așa cum era înainte.
În plus, rețineți că, în caz de succes trimiterea scrisorii. în redirecționarea utilizatorul înapoi la link-ul de la pagina de înregistrare, am adăugat un hidden_form parametru.
Parametrul hidden_form necesar, astfel încât să putem ascunde formularul de înregistrare după trimiterea cu succes un mesaj pentru a confirma adresa. Nu avem nevoie pentru același utilizator să se înregistreze din nou.
Acum, în scopul de a ascunde această formă de înregistrare, trebuie să ne schimbăm condițiile sale de afișare. Deschideți fișierul form_register.php și în interiorul acestei condiții:
Adăugați o altă condiție, în acest fel:
Acum, în cazul înregistrării cu succes, vom vedea doar acest mesaj:
Ei bine, cu adăugarea unui utilizator în confirm_users tabel. trimiterea de scrisori către oficiul poștal și încheierea unui mesaj de înregistrare de succes am terminat.
link-ul de tranziție într-un e-mail pentru a confirma adresa dvs. de email
NOTĂ! Înainte de a continua, asigurați-vă că înregistrarea a indicat cutia poștală corectă. În caz contrar, nu veți primi o scrisoare.
Acum este momentul pentru a verifica dacă mesajul este trimis fără probleme. Deschideți pagina de conectare a browserului, introduceți detaliile și dați clic pe butonul de registru.
Acum, deschidem cutia noastră e-mail și să vedem că am primit o scrisoare cu subiectul „Confirmați Mail Online develop.sozdatisite.ru“.
Am deschis această scrisoare și de a găsi un link pentru a confirma adresa.
Și vedem că, după ce faceți clic pe acest link, vom muta în activation.php fișier. in care trebuie sa terminam confirmarea. Aceasta este, în acest dosar trebuie. elimina utilizatorul care a confirmat corespondența de la masa confirm_users. și utilizatorii din tabel. schimba starea e-mail 0 - 1.
Creați acest activation.php fișier. deschide-l și scrie acest cod:
Dacă nu există aceste opțiuni, vom merge mai departe. Și atunci trebuie să verifice dacă token-ul se potrivește de link-uri cu token-ul tabelului confirm_users.
Prin urmare, trebuie să facă o cerere în acest tabel confirm_users. și selectați jetonul în utilizatorul corespunzător.
Dacă eroarea în interogare a bazei de date este nici un utilizator cu astfel de date există și jetoanele meci. atunci vom merge mai departe. În caz contrar, opriți script-ul și a afișa mesajul de eroare corespunzător. Da, iar la sfârșitul fișierului, completează cererea de selecție a utilizatorului și închide conexiunea la baza de date.
În continuare avem nevoie pentru a actualiza starea terenului din tabelul email_status utilizatori și de a șterge datele de utilizator temporare din tabelul confirm_users.
La locația specificată „// (1) Locul pentru următoarea bucată de cod“, scrie următorul cod:
Și înainte de a adăuga adresa de e-mail și parola în sesiune, care este, în fața acestor linii:
În general, codul ar trebui să ne acest lucru:
Notă. am tăiat date adăugând liniile din sesiunea utilizatorului și redirecționează la pagina principală și adăugați-le la altceva bloc, verificarea stării de e-mail.
Eliminarea utilizatorilor care nu au confirmat corespondența în timpul zilei
În principiu, e-mailul de confirmare am terminat. stânga pentru a face față cu eliminarea utilizatorului din baza de date care nu au confirmat corespondența în termen de douăzeci și patru de ore de la momentul înregistrării. Dar, înainte de a începe ștergerea utilizatorilor, avem nevoie pentru a adăuga câmpul date_regisration la masa utilizatorilor și pot modifica cererea pentru a adăuga un utilizator în acest tabel.
Deschideți phpMyAdmin, selectați utilizatorii de masă. faceți clic pe tab-ul structura și faceți clic pe butonul OK.
Apoi, introduceți date_registration numele câmpului. tip datetime este selectat și faceți clic pe butonul de salvare.
Date_registration domeniu am adăugat, acum trebuie să modificați interogarea pentru a adăuga utilizatori la masa de utilizatori. Asta este, trebuie să specificați că în date_registration domeniu înregistrează datele de înregistrare utilizator.
fișier register.php Deschideți. du-te la solicitarea de a adăuga un utilizator la masa de utilizatori si schimba-l, după cum urmează:
Aceasta este, la sfârșitul primelor paranteze, separate prin virgulă adăuga date_registration câmp. și o valoare pentru acest câmp, indică ACUM funcția ().
Acum, puteți începe să eliminați și utilizatorii neconfirmate. Când vă înregistrați, vom adăuga utilizatorul direct în ambele tabele, în tabelul de utilizatori și confirm_users de masă. Prin urmare, îl vom elimina la fel de bine din ambele tabele.
Eliminarea utilizatorilor nu este confirmată în procesul de înregistrare
Vom începe de la data înregistrării. fișier register.php Deschideți. și adăugarea de către utilizator la un tabel de utilizatori. adăugați această cerere:
În această interogare, precizăm că doriți să eliminați utilizatorii care nu au confirmat corespondența în termen de douăzeci și patru de ore din momentul înregistrării, adică în cazul în care valoarea câmpului email_status zero și diferența dintre ora curentă (funcția ACUM ()) și o zi (intervalul 1 zi ) este mai mult decât data înregistrării date_registration câmpului.
Acum, înainte de a face un semn, și adăugați utilizatorul la confirm_users de masă. se adaugă, de asemenea, cererea de a elimina utilizator neverificat, dar din tabelul confirm_users.
Acum, înainte de a înregistra un nou utilizator va fi șters utilizatorii nu a confirmat.
fișier auth.php Deschideți. și să vi se solicite să selectați un utilizator din tabelul de utilizatori. adăuga doar două cereri pentru a elimina utilizatorii neverificat din tabelul de utilizatori și masa de confirm_users.
Eliminarea utilizatorilor nu este confirmată în procesul de e-mail de confirmare
Activation.php deschide fișierul și înainte de a solicita o mostră din tabelul confirm_users token. adaugă aceleași cereri pentru înlăturarea membrilor neconfirmat din tabel utilizatorilor și confirm_users.