Utilizator de membru cu PHP

Un tutorial pentru începător! Indiferent unde vă aflați pe Internet, există o capcană pe care o găsiți aproape peste tot - înregistrarea utilizatorului. Indiferent dacă aveți nevoie de utilizatorii dvs. pentru a vă înregistra pentru securitate sau doar pentru o funcție adăugată, nu există nici un motiv să nu faceți acest lucru cu acest tutorial simplu. În acest tutorial vom trece peste elementele de bază ale managementului utilizatorului, terminând cu o zonă simplă pentru membrii pe care o puteți implementa pe propriul site.

Dacă aveți nevoie de ajutor suplimentar sau doriți o comandă rapidă, verificați gama furnizorilor de servicii PHP din Envato Studio. Acești dezvoltatori cu experiență vă pot ajuta cu ceva de la o rezolvare rapidă a erorilor la dezvoltarea unei aplicații întregi de la zero. Deci, doar răsfoiți furnizorii, citiți recenziile și evaluările și alegeți unul potrivit pentru dvs..

Introducere

În acest tutorial vom trece prin fiecare pas de a face un sistem de management al utilizatorului, împreună cu un sistem de mesagerie privat inter-utilizator. Vom face acest lucru folosind PHP, cu o bază de date MySQL pentru stocarea tuturor informațiilor despre utilizatori. Acest tutorial este destinat începătorilor absolut în PHP, deci nu este necesară cunoașterea prealabilă - de fapt, vă puteți plictisi dacă sunteți un utilizator PHP experimentat!

Acest tutorial este conceput ca o introducere de bază pentru sesiunile și pentru utilizarea bazelor de date în PHP. Deși rezultatul final al acestui tutorial nu vă poate părea imediat util, abilitățile pe care le obțineți din acest tutorial vă vor permite să continuați să creați un sistem de apartenență propriu; satisfacerea propriilor nevoi.

Înainte de a începe acest tutorial, asigurați-vă că aveți la îndemână următoarele informații:

  • Numele gazdei bazei de date - acesta este serverul pe care este găzduit baza dvs. de date, în cele mai multe situații acest lucru va fi pur și simplu "localhost".
  • Numele bazei de date, numele de utilizator al bazei de date, parola de bază - înainte de a începe acest tutorial trebuie să creați o bază de date MySQL dacă aveți abilitatea sau aveți la îndemână informațiile necesare pentru conectarea la o bază de date existentă. Aceste informații sunt necesare în tutorial.

Dacă nu aveți aceste informații, atunci furnizorul dvs. de gazduire ar trebui să vă poată furniza acest lucru.

Acum, că am depășit formalitățile, să începem tutorialul!

Pasul 1 - Configurația inițială

Configurarea bazei de date

Așa cum este menționat în Introducere, aveți nevoie de o bază de date pentru a continua acest punct în tutorial. Pentru a începe, vom face un tabel în această bază de date pentru a stoca informațiile despre utilizatori.

Tabelul de care avem nevoie stochează informațiile despre utilizatori; pentru scopurile noastre vom folosi o masă simplă, dar ar fi ușor să stocați mai multe informații în coloane suplimentare dacă acest lucru este de care aveți nevoie. În sistemul nostru avem nevoie de următoarele patru coloane:

  • Numele de utilizator (Cheia principala)
  • Nume de utilizator
  • Parola
  • Adresa de email

În termeni de bază de date, a Cheia principala este câmpul care identifică în mod unic rândul. În acest caz, Numele de utilizator va fi cheia primară. Dacă vrem ca acest lucru să crească de fiecare dată când un utilizator înregistrează, vom folosi opțiunea specială MySQL - increment auto.

Interogarea SQL pentru a crea tabela noastră este inclusă mai jos și, de obicei, va fi rulată în fila 'SQL' a phpMyAdmin.

CREATE TABLE "Utilizatori" ('UserID' INT (25) NU NULL AUTO_INCREMENT PRIMARY KEY, 'Nume de utilizator' VARCHAR (65) NU NULL, 'Parola' VARCHAR (32) NULL, 'EmailAddress' VARCHAR (255) NOT NULL);

Crearea unui fișier de bază

Pentru a simplifica crearea proiectului, vom face un fișier de bază pe care îl putem include în fiecare dintre fișierele create. Acest fișier va conține informațiile despre conexiunea bazei de date, împreună cu anumite variabile de configurare care ne vor ajuta să ieșim pe drum.

Începeți prin crearea unui nou fișier: base.php, și introduceți în el următorul cod:

Să aruncăm o privire la câteva dintre aceste linii, nu-i așa? Există câteva funcții pe care le-am folosit și nu le-am explicat încă, așa că hai să le aruncăm rapid și să le înțelegem - dacă înțelegeți deja principiile PHP, puteți trece peste această explicație.

session_start ();

Această funcție pornește o sesiune pentru noul utilizator și mai târziu în acest tutorial vom stoca informații în această sesiune pentru a ne permite să recunoaștem utilizatorii care s-au logat deja. Dacă o sesiune a fost deja creată, această funcție va recunoaște și va purta această sesiune pe pagina următoare.

mysql_connect ($ dbhost, $ dbuser, $ dbpass) sau mor ("Eroare MySQL:" mysql_error ()); mysql_select_db ($ dbname) sau mor ("Eroare MySQL:" mysql_error ());

Fiecare dintre aceste funcții îndeplinește o sarcină separată, dar legată. mysql_connect funcția noastră conectează scriptul nostru la serverul de baze de date folosind informațiile pe care le-am dat mai sus, și mysql_select_db funcția alege apoi baza de date care să fie utilizată împreună cu scriptul. Dacă una dintre funcții nu reușește să finalizeze, a muri funcția va intra automat și va opri procesarea scriptului - lăsând utilizatorilor cu mesajul că a existat o eroare MySQL.

Pasul 2 - Înapoi la Frontend

Ce trebuie să facem mai întâi?

Cel mai important element de pe pagina noastră este prima linie de PHP; această linie va include fișierul pe care l-am creat mai sus (base.php) și ne va permite, în esență, să accesăm orice fișier din fișierul nostru actual. Vom face acest lucru cu următoarea linie de cod PHP. Creați un fișier numit index.php, și plasați acest cod în partea de sus.

Începeți pagina HTML

Primul lucru pe care o vom face pentru interfața noastră este crearea unei pagini în care utilizatorii pot introduce datele lor pentru a se conecta sau dacă sunt deja conectați la o pagină în care pot alege ce vor să facă atunci. În acest tutorial presupun că utilizatorii au cunoștințe de bază despre cum funcționează HTML / CSS și, prin urmare, nu voi explica acest cod în detaliu; în momentul în care aceste elemente vor fi fără stil, dar vom putea schimba acest lucru mai târziu când creăm foaia de stil CSS.

Folosind fișierul pe care tocmai l-am creat (index.php), introduceți următorul cod HTML sub linia de PHP pe care am creat-o deja.

    Sistem de management al utilizatorilor (Tom Cameron pentru NetTuts)    

Ce să le arătăm?

Înainte de a scoate restul paginii, avem câteva întrebări pentru a ne întreba:

  1. Utilizatorul este deja conectat?
  • da - trebuie să le arătăm o pagină cu opțiuni pe care să le poată alege.
  • Nu - vom continua cu următoarea întrebare.
  • Utilizatorul a trimis deja datele de conectare?
    • da - trebuie să verificăm detaliile acestora și, dacă este corect, le vom înregistra pe site.
    • Nu - vom continua cu următoarea întrebare.
  • Dacă ambii dintre cei de mai sus au răspuns Nu, putem acum presupune că trebuie să afișăm utilizatorilor un formular de autentificare.
  • Aceste întrebări sunt, de fapt, aceleași întrebări pe care le vom implementa în codul nostru PHP. Vom face asta sub forma dacă declarațiile. Fără a introduce nimic în nici unul din fișierele dvs. noi, permiteți să aruncați o privire la logica pe care o vom folosi mai întâi.

    Arată confuz, nu-i așa? Să-l împărțim în secțiuni mai mici și să le ducem una câte una.

    dacă ! empty ($ _ SESSION ['LoggedIn']) &&! empty ($ _ SESSION ['Nume de utilizator'])) // permiteți accesul utilizatorului la pagina principală

    Atunci când un utilizator se conectează la site-ul nostru, vom stoca informațiile într-o sesiune - în orice moment după aceasta putem accesa aceste informații într-un tablou special PHP global - $ _SESSION. Noi folosim gol pentru a verifica dacă variabila este goală, cu operatorul ! în fața. Prin urmare, spunem:

    Dacă variabila $ _SESSION ['LoggedIn'] nu este goală și $ _SESSION ['Username'] nu este goală, executați această bucată de cod.

    Următoarea linie funcționează în același mod, numai de această dată folosind $ _POST gama globală. Această matrice conține toate datele trimise din formularul de conectare pe care îl vom crea ulterior în acest tutorial. Linia finală va fi executată numai dacă niciuna dintre afirmațiile anterioare nu este îndeplinită; în acest caz, vom afișa utilizatorului un formular de autentificare.

    Deci, acum că înțelegem logica, hai să facem conținut între aceste secțiuni. În tine index.php fișier, introduceți următoarele sub ceea ce aveți deja.

     

    Zona membrilor

    și adresa dvs. de e-mail este .

    Succes"ecou"

    Acum vă redirecționăm către zona membrului.

    "ecou""; altceva echo"

    Eroare

    "ecou"

    Ne pare rău, contul dvs. nu a putut fi găsit. Faceți clic aici pentru a încerca din nou.

    "; altfel ?>

    Autentificare membru

    Multumesc pentru vizita! Vă rugăm fie să vă conectați mai jos, fie să faceți clic aici pentru a vă înregistra.



    Sperăm că primul și ultimul bloc de coduri nu vă vor deruta prea mult. Ceea ce trebuie să ne împărtășim acum este ceea ce ați ajuns la acest tutorial - codul PHP. Acum vom trece prin secțiunea a doua o singură linie la un moment dat și voi explica ce este destinat fiecare cod de cod aici.

     $ username = mysql_real_escape_string ($ _ POST ['username']); $ password = md5 (mysql_real_escape_string ($ _ POST ['parola']));

    Există două funcții care necesită explicații pentru acest lucru. in primul rand, mysql_real_escape_string - o funcție foarte utilă pentru a curăța intrarea bazei de date. Nu este o măsură de siguranță, dar acest lucru va ține afară majoritatea hackerilor rău intenționați acolo prin eliminarea părților nedorite de orice a fost introdus în formularul nostru de autentificare. În al doilea rând, MD5. Ar fi imposibil să intrăm în detaliu aici, dar această funcție criptează pur și simplu tot ceea ce îi este transmis - în acest caz parola utilizatorului - pentru a împiedica ochii curioși să le citească.

     $ checklogin = mysql_query ("SELECT * FROM utilizatori WHERE Utilizator = '". $ username "' AND Password = '". $ password ". dacă mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ rând ['AddressAddress ']; $ _SESSION ['Nume de utilizator'] = $ nume utilizator; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;

    Aici avem nucleul codului de conectare; în primul rând, executăm o interogare în baza noastră de date. În această interogare căutăm tot ceea ce privește un membru, al cărui nume de utilizator și parolă se potrivesc cu valorile noastre $ username și $ parola pe care le-a furnizat utilizatorul. Pe următoarea linie avem o instrucțiune if, în care verificăm câte rezultate am primit - dacă nu există rezultate, această secțiune nu va fi procesată. Dar dacă există un rezultat, știm că utilizatorul există, și deci le vom conecta.

    Următoarele două linii sunt pentru a obține adresa de e-mail a utilizatorului. Avem deja aceste informații din interogarea pe care am executat-o ​​deja, astfel încât să putem accesa cu ușurință aceste informații. Mai întâi, obținem o serie de date care au fost extrase din baza de date - în acest caz folosim funcția PHP mysql_fetch_array. Apoi am atribuit valoarea Adresa de email domeniu la o variabilă pe care o putem folosi mai târziu.

    Acum am setat sesiunea. Stochează numele de utilizator și adresa de e-mail a utilizatorului în sesiune, împreună cu o valoare specială pentru ca noi să știm că au fost logați folosind acest formular. După ce totul este spus și terminat, acestea vor fi apoi redirecționate spre zona de membru folosind META REFRESH în cod.

    Deci, ce arată în prezent proiectul nostru unui utilizator?

    Grozav! Este timpul să treceți mai departe, să vă asigurați că oamenii pot intra de fapt pe site-ul dvs..

    Lăsați oamenii să se înscrie

    Este bine și bine că aveți un formular de autentificare pe site-ul dvs., dar acum trebuie să lăsăm utilizatorul să îl folosească - trebuie să creați un formular de autentificare. Faceți un fișier numit register.php și puneți următorul cod în el.

        Sistem de management al utilizatorilor (Tom Cameron pentru NetTuts)    
    Eroare"ecou"

    Ne pare rău, numele de utilizator este luat. Reveniți și încercați din nou.

    "altceva $ registerquery = mysql_query (" INSERT INTO users "(Nume de utilizator, Parolă, EmailAddress) VALUES (" $. $ username. ", "); dacă ($ registerquery) echo"

    Succes

    "ecou"

    Contul dvs. a fost creat cu succes. Faceți clic aici pentru a vă conecta.

    "; altceva echo"

    Eroare

    "ecou"

    Ne pare rău, înregistrarea dvs. a eșuat. Reveniți și încercați din nou.

    "; altfel ?>

    Inregistreaza-te

    Vă rugăm să introduceți datele dvs. de mai jos pentru a vă înregistra.




    Deci, nu există prea multe PHP noi pe care nu le-am învățat încă în acea secțiune. Să aruncăm o privire rapidă asupra acelei interogări SQL și să vedem dacă putem să ne dăm seama ce face.

    $ registerquery = mysql_query ("INSERT INTO users (Nume de utilizator, Parolă, EmailAddress) VALUES (''. $ username. '', '$.

    Deci, aici adăugăm utilizatorul în baza noastră de date. De data aceasta, în loc de a prelua datele, îl inserăm; așadar, specificăm mai întâi la ce coloane intram datele (nu uitați, ID-ul de utilizator va crește automat). În VALORI () zonă, îi spunem ce să punem în fiecare coloană; în acest caz variabilele noastre care au provenit din intrarea utilizatorului. Deci, hai să încercăm; odată ce ați făcut un cont pe noul dvs. formular de înregistrare nou, iată ce veți vedea pentru zona de membru.

    Asigurați-vă că pot ieși

    Suntem aproape la sfârșitul acestei secțiuni, dar mai avem încă un lucru necesar înainte de a termina aici - o modalitate prin care utilizatorul să-și deconecteze conturile. Acest lucru este foarte ușor de făcut (din fericire pentru noi); creați un nou nume numit logout.php și introduceți următoarele în el.

     

    În această situație suntem inițial reinițializați globalizarea noastră $ _SESSION array, și apoi distrugem în întregime ședința.

    Și acesta este sfârșitul acestei secțiuni și sfârșitul codului PHP. Să trecem acum la secțiunea noastră finală.

    Pasul 3 - Obțineți stilul

    Nu voi explica prea mult în această secțiune - dacă nu înțelegeți HTML / CSS, aș recomanda foarte mult atunci când din multele tutoriale excelente de pe acest site pentru a vă începe. Creați un fișier nou numit style.css și introduceți în ea; acest lucru va stoca toate paginile pe care le-am creat până acum.

    * marja: 0; umplutura: 0;  corp font-family: Trebuchet MS;  a culoare: # 000;  a: hover, a: activ, a: vizitat text-decoration: none;  #main width: 780px; marja: 0 auto; margin-top: 50px; padding: 10px; frontieră: 1px solid #CCC; fundal-culoare: #EEE;  forma câmpul border: 0;  formează forma de câmp p br clar: left;  etichetă margin-top: 5px; afișare: bloc; lățime: 100px; umplutura: 0; plutește la stânga;  intrare font-family: Trebuchet MS; frontieră: 1px solid #CCC; margin-bottom: 5px; fundal-culoare: #FFF; padding: 2px;  intrare: hover border: 1px solid # 222; fundal-culoare: #EEE; 

    Acum, să aruncăm o privire la câteva capturi de ecran despre cum ar trebui să arate proiectul nostru final:

    Formularul de autentificare.

    Zona membrilor.

    Formularul de înregistrare.

    Și, în sfârșit…

    Si asta e! Acum aveți o zonă de membri pe care o puteți utiliza pe site-ul dvs. Văd că o mulțime de oameni își scutură capul și strigă la monitoarele lor că nu le-ar mai fi de folos - ai dreptate. Dar ceea ce sper că orice începători la PHP au învățat sunt elementele de bază ale modului de utilizare a unei baze de date și modul de utilizare a sesiunilor pentru stocarea informațiilor. Abilitățile vitale pentru crearea unei aplicații web.

    • Abonați-vă la fluxul RSS NETTUTS pentru mai multe tutori și articole zilnice de dezvoltare web.


    Cod