Godless auth registracija php

10.05.2015. Romchik

Dobar dan. U ovom članku ćemo koristiti primjer za analizu registracije korisnika u . Zatim aktivirajte korisnika tako što ćete potvrditi njegovu email adresu. I konačno, autorizacija korisnika u . Ali samo aktivni korisnici trebaju biti ovlašteni.

Prvo što ćemo uraditi je kreirati kontroler i pogled za registraciju.

Kreiranje obrasca za registraciju

Idite na direktorij s predlošcima resursa i kreirajte auth poddirektorij u njemu. Sada ćemo u auth folderu kreirati datoteku register.blade.php sa sljedećim kodom:

Registracija

((--Greške--)) @if ($errors->has()) ×
    @foreach($errors->all() kao $error)
  • ((( $greška )))
  • @endforeach
@endif (!! csrf_field() ! Email Пароль Повторите пароль Отправить !}

Neću objašnjavati gornji kod, ovdje je sve jasno.

App/Http/Controllers/Auth/AuthController.php

Samo ćemo nadjačati metode kontrolera AuthController.php. Dakle, za prikaz obrasca za registraciju postoji metoda getRegister. Ovu metodu ne diramo.

Pređimo sada na rute. Otvorite fajl:

I definirajte put do naše metode:

Route::get("auth/register", "Auth\AuthController@getRegister");

Sada otvorimo našu aplikaciju u pretraživaču. Odlično, vidimo formular za registraciju.

Registracija korisnika u

Idemo odmah definirati rutu za registraciju korisnika. Idemo na fajl:

App/Http/Controllers/routes.php

I dodajte sljedeću rutu:

Route::post("auth/register", "Auth\AuthController@postRegister");

Sada kreirajmo tabelu za pohranjivanje korisnika. Već postoji migracija za ovu tabelu, ali nije prikladna za nas. Hajde da ga promenimo. Idemo na fajl:

Database/migrations/2014_10_12_create_users_table.php

I promijenimo kod:

U mom slučaju to izgleda ovako:

Sačuvaj bd.php .
Odlično! Imamo tabelu u bazi podataka i vezu sa njom. Sada možete početi kreirati stranicu na kojoj će korisnici ostaviti svoje podatke.

3. Kreirajte reg.php fajl sa sadržajem (svi komentari unutra):



Registracija


Registracija


Vaša prijava:




Vaša lozinka:








4. Kreirajte datoteku koja će unijeti podatke u bazu podataka i sačuvati korisnika. save_user.php (komentari unutra):

5. Sada se naši korisnici mogu registrirati! Zatim morate kreirati „vrata“ za već registrovane korisnike za ulazak na stranicu. index.php (komentari unutra) :




Početna stranica


Početna stranica


Vaša prijava:


Vaša lozinka:






Registrirajte se



OK, sada je sve gotovo! Lekcija može biti dosadna, ali vrlo korisna. Ovdje je prikazana samo ideja registracije, a zatim je možete poboljšati: dodati sigurnost, dizajn, polja podataka, učitavanje avatara, odjavljivanje s vašeg računa (da biste to učinili, jednostavno uništite varijable iz sesije s funkcijom unset) i tako dalje. Sretno!

Sve sam proverio, radi kako treba!

U ovom članku ćete naučiti kako da kreirate obrazac za registraciju i prijavu koristeći HTML, JavaScript, PHP i MySql. Ovakvi obrasci se koriste na gotovo svakoj web stranici, bez obzira na njen tip. Napravljeni su za forum, online prodavnicu, društvene mreže (kao što su Facebook, Twitter, Odnoklassniki) i mnoge druge vrste stranica.

Ako imate web stranicu na svom lokalnom računalu, nadam se da već imate instaliran i pokrenut lokalni server. Bez toga ništa neće raditi.

Kreiranje tabele u bazi podataka

Za implementaciju registracije korisnika, prije svega nam je potrebna Baza podataka. Ako ga već imate, onda odlično, inače, morate ga kreirati. U članku detaljno objašnjavam kako to učiniti.

I tako, imamo bazu podataka (skraćeno DB), sada treba da kreiramo tabelu korisnika u koje ćemo dodati naše registrovane korisnike.

U članku sam također objasnio kako napraviti tabelu u bazi podataka. Prije kreiranja tabele, moramo odrediti koja će polja sadržavati. Ova polja će odgovarati poljima iz obrasca za registraciju.

Dakle, pomislili smo, zamislili koja polja će imati naš obrazac i napravili tabelu korisnika sa ovim poljima:

  • id- Identifikator. Polje id Svaka tabela u bazi podataka treba da ga ima.
  • ime- Da sačuvam ime.
  • prezime- Da sačuvam prezime.
  • email- Da sačuvate poštansku adresu. Koristićemo e-mail kao login, tako da ovo polje mora biti jedinstveno, odnosno imati UNIQUE indeks.
  • email_status- Polje za označavanje da li je pošta potvrđena ili ne. Ako je pošta potvrđena, tada će imati vrijednost 1, u suprotnom vrijednost je 0.
  • lozinka- Da sačuvate lozinku.


Ako želite da vaš formular za registraciju ima još neka polja, također ih možete dodati ovdje.

To je to, naš sto korisnika spreman. Pređimo na sljedeću fazu.

Veza sa bazom podataka

Napravili smo bazu podataka, sada se moramo povezati s njom. Povezićemo se pomoću PHP ekstenzije MySQLi.

U folderu naše stranice kreirajte datoteku s imenom dbconnect.php, i napišite sljedeću skriptu u njoj:

Ovaj fajl dbconnect.php morat će biti spojen na rukovaoce obrascima.

Obratite pažnju na varijablu $address_site, ovdje sam naznačio naziv moje test stranice na kojoj ću raditi. Molimo Vas da u skladu s tim naznačite naziv Vaše stranice.

Struktura sajta

Pogledajmo sada HTML strukturu našeg sajta.

Premjestit ćemo zaglavlje i podnožje stranice u zasebne datoteke, header.php I footer.php. Uključićemo ih na sve stranice. Naime na glavnoj stranici (fil index.php), na stranicu sa formularom za registraciju (fil form_register.php) i na stranicu sa formularom za autorizaciju (fil form_auth.php).

Blokirajte našim linkovima, registracija I autorizacija, dodajte ih u zaglavlje stranice tako da se prikazuju na svim stranicama. Jedan link će ući na stranicu sa formularom za registraciju (fil form_register.php), a drugi na stranicu sa formularom za autorizaciju (fil form_auth.php).

Sadržaj datoteke header.php:

Naziv naše stranice

Kao rezultat, naša glavna stranica izgleda ovako:


Naravno, vaša stranica može imati potpuno drugačiju strukturu, ali to nam sada nije važno. Glavna stvar je da postoje veze (dugmad) za registraciju i autorizaciju.

Sada idemo na formular za registraciju. Kao što ste već shvatili, imamo to u dosijeu form_register.php.

Idite na bazu podataka (u phpMyAdmin), otvorite strukturu tabele korisnika i pogledajte koja polja su nam potrebna. To znači da su nam potrebna polja za unos imena i prezimena, polje za unos poštanske adrese (Email) i polje za unos lozinke. A iz sigurnosnih razloga, dodaćemo polje za unos captcha.

Na serveru, kao rezultat obrade obrasca za registraciju, mogu doći do raznih grešaka zbog kojih se korisnik neće moći registrovati. Stoga, kako bi korisnik razumio zašto registracija nije uspjela, potrebno je prikazati poruke o ovim greškama.

Prije prikaza obrasca, dodajte blok za prikaz poruka o grešci iz sesije.

I još nešto, ako je korisnik već autorizovan, pa iz radoznalosti ide direktno na stranicu za registraciju pisanjem u adresnu traku pretraživača site_address/form_register.php, tada ćemo u ovom slučaju, umjesto obrasca za registraciju, prikazati zaglavlje da je već registriran.

Općenito, kod datoteke form_register.php imamo ovo:

Već ste registrovani

U pretraživaču stranica sa formularom za registraciju izgleda ovako:


Koristeći obavezni atribut, sva polja smo učinili obaveznim.

Obratite pažnju na kod obrasca za registraciju na kojem se prikazuje captcha:


Naveli smo putanju do datoteke u vrijednosti atributa src za sliku captcha.php, koji generiše ovu captcha.

Pogledajmo kod fajla captcha.php:

Kod je dobro komentarisan, pa ću se fokusirati samo na jednu tačku.

Unutar funkcije imageTtfText(), put do fonta je specificiran verdana.ttf. Dakle, da bi captcha radila ispravno, moramo kreirati folder fontove, i postavite datoteku fonta tamo verdana.ttf. Možete ga pronaći i preuzeti s Interneta ili preuzeti iz arhive s materijalima ovog članka.

Završili smo sa HTML strukturom, vrijeme je da krenemo dalje.

Provjera valjanosti e-pošte pomoću jQueryja

Bilo koji obrazac treba provjeriti ispravnost unesenih podataka, kako na strani klijenta (koristeći JavaScript, jQuery) tako i na strani servera.

Posebnu pažnju moramo obratiti na polje Email. Veoma je važno da unesena poštanska adresa bude važeća.

Za ovo polje za unos postavljamo tip e-pošte (type="email"), što nas malo upozorava na neispravne formate. Ali to nije dovoljno, jer preko kodnog inspektora koji nam pruža pretraživač možemo lako promijeniti vrijednost atributa tip With email on tekst, i to je to, naš ček više neće važiti.


I u ovom slučaju, moramo izvršiti pouzdaniju provjeru. Da bismo to uradili, koristićemo jQuery biblioteku iz JavaScript-a.

Da biste povezali jQuery biblioteku, u datoteci header.php između oznaka , prije završne oznake , dodajte ovaj red:

Odmah nakon ovog reda, dodaćemo kod za validaciju e-pošte. Ovdje ćemo dodati kod za provjeru dužine unesene lozinke. Njegova dužina mora biti najmanje 6 znakova.

Koristeći ovu skriptu, provjeravamo ispravnost unesene adrese e-pošte. Ako je korisnik unio pogrešnu e-poštu, prikazujemo poruku o grešci o tome i onemogućujemo dugme za slanje obrasca. Ako je sve u redu, uklanjamo grešku i aktiviramo dugme za slanje obrasca.

I tako, završili smo sa validacijom obrasca na strani klijenta. Sada ga možemo poslati na server, gdje ćemo također napraviti par provjera i dodati podatke u bazu podataka.

Registracija korisnika

Obrazac šaljemo u fajl na obradu register.php, putem POST metode. Ime ove datoteke rukovanja je navedeno u vrijednosti atributa akcija. A metoda slanja je navedena u vrijednosti atributa metoda.

Otvorite ovaj fajl register.php i prva stvar koju treba da uradimo je da napišemo funkciju pokretanja sesije i povežemo datoteku koju smo ranije kreirali dbconnect.php(U ovom fajlu smo uspostavili vezu sa bazom podataka). Takođe, hajde da odmah proglasimo ćelije error_messages I uspjeh_poruke u globalnom nizu sesija. IN error_mesages zabilježit ćemo sve poruke o greškama koje se javljaju tokom obrade obrasca i u succes_messages, snimaćemo radosne poruke.

Prije nego što nastavimo, moramo provjeriti da li je obrazac uopće dostavljen. Napadač može pogledati vrijednost atributa akcija iz obrasca i saznajte koja datoteka obrađuje ovaj obrazac. I možda ima ideju da ide direktno na ovu datoteku tako što će upisati sljedeću adresu u adresnu traku pretraživača: http://site_address/register.php

Dakle, moramo provjeriti da li postoji ćelija u globalnom POST nizu čije ime odgovara imenu našeg dugmeta "Registriraj se" iz obrasca. Na ovaj način provjeravamo da li je na dugme "Registracija" kliknuto ili ne.

Ako napadač pokuša da ode direktno na ovu datoteku, dobiće poruku o grešci. Dozvolite mi da vas podsjetim da varijabla $address_site sadrži naziv stranice i ona je deklarirana u datoteci dbconnect.php.

Captcha vrijednost u sesiji je dodana kada je generirana, u datoteci captcha.php. Kao podsjetnik, pokazat ću vam ponovo ovaj dio koda iz datoteke captcha.php, gdje se captcha vrijednost dodaje sesiji:

Sada idemo na samu verifikaciju. U fajlu register.php, unutar if bloka, gdje provjeravamo da li je kliknuto na dugme "Registriraj se", odnosno gdje je naznačen komentar "" // (1) Prostor za sljedeći dio koda"mi pišemo:

//Provjera primljene captcha //Skratite razmake od početka i kraja reda $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Uporedi primljenu vrijednost sa vrijednošću iz sesije. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Ako captcha nije ispravna, vraćamo korisnika na stranicu za registraciju i tamo ćemo mu prikazati poruku o grešci da je unio pogrešan captcha $error_message = "

Greška! Uneli ste pogrešan captcha

"; // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] = $error_message; // Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 trajno premješten"); header("Lokacija: " .$address_site ."/form_register.php"); //Zaustavi skriptu exit(); ) // (2) Mjesto za sljedeći dio koda )else( //Ako captcha nije proslijeđena ili je prazan izlaz ("

Greška! Ne postoji verifikacioni kod, odnosno captcha kod. Možete otići na glavnu stranicu.

"); }

Zatim moramo obraditi primljene podatke iz POST niza. Prije svega, trebamo provjeriti sadržaj globalnog POST niza, odnosno da li tamo postoje ćelije čija imena odgovaraju nazivima polja za unos iz našeg obrasca.

Ako ćelija postoji, tada skraćujemo razmake od početka i kraja reda iz ove ćelije, u suprotnom preusmjeravamo korisnika nazad na stranicu s obrascem za registraciju.

Zatim, nakon što smo skratili razmake, dodamo red u varijablu i provjeravamo da li je ova varijabla prazna; ako nije prazna, idemo dalje, u suprotnom preusmjeravamo korisnika nazad na stranicu sa registracionom formom.

Zalijepite ovaj kod na navedenu lokaciju" // (2) Prostor za sljedeći dio koda".

/* Provjerite da li postoje podaci poslani iz obrasca u globalnom nizu $_POST i umotajte poslane podatke u regularne varijable.*/ if(isset($_POST["first_name"]))( //Skratite razmake od početka i kraj niza $first_name = trim($_POST["first_name"]); //Provjerite da li je varijabla praznina if(!empty($first_name))( // Radi sigurnosti, pretvorite posebne znakove u HTML entitete $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Unesite svoje ime

Polje za naziv nedostaje

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) if( isset($_POST["last_name"]))( //Skrati razmake od početka i kraja reda $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // Radi sigurnosti, pretvorite posebne znakove u HTML entitete $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Molimo unesite svoje prezime

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) )else ( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Polje za prezime nedostaje

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) if( isset($_POST["email"]))( //Skrati razmake od početka i kraja reda $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Lokacija koda za provjeru formata adrese e-pošte i njene jedinstvenosti )else( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .="

Unesite svoju e-poštu

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) )else ( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) if( isset($_POST["password"]))( //Skratite razmake od početka i kraja niza $password = trim($_POST["password"]); if(!empty($password)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Šifriranje lozinke $password = md5($password."top_secret"); )else( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .="

Unesite svoju lozinku

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) )else ( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) // (4) Mjesto za kod za dodavanje korisnika u bazu podataka

Od posebnog značaja je teren email. Moramo provjeriti format primljene poštanske adrese i njenu jedinstvenost u bazi podataka. Odnosno, postoji li neki korisnik sa istom adresom e-pošte već registrovan?

Na navedenoj lokaciji" // (3) Lokacija koda za provjeru formata poštanske adrese i njene jedinstvenosti" dodajte sljedeći kod:

//Provjerite format primljene email adrese koristeći regularni izraz $reg_email = "/^**@(+(*+)*\.)++/i"; //Ako format primljene adrese e-pošte ne odgovara regularnom izrazu if(!preg_match($reg_email, $email))( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Uneli ste netačan email

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); ) // Provjeravamo da li je takva adresa već u bazi podataka. /Ako je broj primljenih tačno jedan red, što znači da je korisnik sa ovom email adresom već registrovan if($result_query->num_rows == 1)( //Ako dobijeni rezultat nije lažan if(($row = $result_query->fetch_assoc()) != false) ( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Korisnik sa ovom adresom e-pošte je već registrovan

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); )else( // Sačuvajte poruku o grešci na sesiju . $_SESSION["error_messages"] .= "

Greška u upitu baze podataka

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); ) /* zatvaranje odabira */ $ result_query-> close(); //Zaustavi skriptu exit(); ) /* zatvaranje odabira */ $result_query->close();

I tako, završili smo sa svim provjerama, vrijeme je da dodamo korisnika u bazu podataka. Na navedenoj lokaciji" // (4) Mjesto za kod za dodavanje korisnika u bazu podataka" dodajte sljedeći kod:

//Upit za dodavanje korisnika u bazu podataka $result_query_insert = $mysqli->query("INSERT INTO `users` (ime_ime, prezime, email, lozinka) VRIJEDNOSTI ("".$first_name."", "".$last_name ." ", ".$email.", ".$password."")"); if(!$result_query_insert)( // Sačuvajte poruku o grešci u sesiji. $_SESSION["error_messages"] .= "

Greška u zahtjevu za dodavanje korisnika u bazu podataka

"; //Vratite korisnika na stranicu za registraciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_register.php"); //Zaustavite skriptu exit(); )else( $_SESSION["success_messages"] = "

Registracija uspješno obavljena!!!
Sada se možete prijaviti koristeći svoje korisničko ime i lozinku.

"; //Pošaljite korisnika na stranicu za autorizaciju header("HTTP/1.1 301 Trajno premješten"); header("Lokacija: ".$address_site."/form_auth.php"); ) /* Dovršavanje zahtjeva */ $ result_query_insert-> close(); //Zatvaranje veze sa bazom podataka $mysqli->close();

Ako je došlo do greške u zahtjevu za dodavanje korisnika u bazu podataka, sesiji dodajemo poruku o ovoj grešci i vraćamo korisnika na stranicu za registraciju.

Inače, ako je sve prošlo kako treba, dodajemo i poruku sesiji, ali ovaj put je ugodnije, odnosno javljamo korisniku da je registracija uspjela. I mi ga preusmjeravamo na stranicu sa formularom za autorizaciju.

Skripta za provjeru formata adrese e-pošte i dužine lozinke je u datoteci header.php, tako da će se primjenjivati ​​i na polja iz ovog obrasca.

Sesija je također pokrenuta u datoteci header.php, dakle u fajlu form_auth.php Nema potrebe za pokretanjem sesije, jer ćemo dobiti grešku.


Kao što sam već rekao, ovdje radi i skripta za provjeru formata adrese e-pošte i dužine lozinke. Stoga, ako korisnik unese pogrešnu adresu e-pošte ili kratku lozinku, odmah će dobiti poruku o grešci. Dugme ućiće postati neaktivan.

Nakon ispravljanja grešaka, dugme ući postaje aktivan, a korisnik će moći poslati obrazac na server, gdje će biti obrađen.

Autorizacija korisnika

Pripisati vrijednost akcija hendikep autorizacije ima specificiran fajl auth.php, to znači da će obrazac biti obrađen u ovoj datoteci.

I tako, otvorite datoteku auth.php i napisati kod za obradu formulara za autorizaciju. Prva stvar koju trebate učiniti je pokrenuti sesiju i povezati datoteku dbconnect.php za povezivanje sa bazom podataka.

Kada kliknete na izlaznu vezu sa sajta, bićemo odvedeni u fajl logout.php, gdje jednostavno uništavamo ćelije sa email adresom i lozinkom iz sesije. Nakon toga vraćamo korisnika nazad na stranicu na kojoj je kliknut na link Izlaz.

Šifra datoteke logout.php:

To je sve. Sada znate kako implementirati i obraditi obrasce za registraciju i autorizaciju korisnika na vašoj web stranici. Ovi obrasci se nalaze na gotovo svakoj web stranici, tako da bi svaki programer trebao znati kako ih napraviti.

Takođe smo naučili kako da validiramo ulazne podatke, kako na strani klijenta (u pretraživaču, koristeći JavaScript, jQuery) tako i na strani servera (koristeći PHP). Naučili smo i kako implementirati proceduru za napuštanje stranice.

Sve skripte su testirane i rade. Arhivu sa fajlovima ovog malog sajta možete preuzeti sa ovog linka.

U budućnosti ću napisati članak u kojem ću opisati. I također planiram napisati članak gdje ću objasniti (bez ponovnog učitavanja stranice). Dakle, kako biste bili informisani o objavljivanju novih članaka, možete se pretplatiti na moju web stranicu.

Ako imate bilo kakvih pitanja, kontaktirajte me, a ako primijetite bilo kakvu grešku u članku, javite mi.

Plan lekcije (5. dio):

  • Kreiranje HTML strukture za formular za autorizaciju
  • Primljene podatke obrađujemo
  • U zaglavlju stranice prikazujemo pozdrav korisnika
  • Da li vam se svidio članak?

    Naučit ćemo kako napraviti jednostavnu autentifikaciju korisnika na stranici. Stranica može imati stranice samo za ovlaštene korisnike i one će u potpunosti funkcionirati ako im dodamo naš blok autentikacije. Da biste ga kreirali, potrebna vam je MySQL baza podataka. Može imati 5 stupaca (minimalno) ili više ako želite dodati informacije o korisnicima. Nazovimo bazu podataka “Userauth”.

    U njemu kreiramo sledeća polja: ID za brojanje broja korisnika, UID za jedinstveni identifikacioni broj korisnika, Korisničko ime za ime korisnika, Email za njegovu email adresu i Lozinka za lozinku. Možete koristiti postojeću bazu podataka za autorizaciju korisnika, samo, kao u slučaju nove baze podataka, kreirajte sljedeću tablicu u njoj.

    MySQL kod

    CREATE TABLE `korisnici` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Korisničko ime` tekst NOT NULL, `Email` tekst NOT NULL, `Password` tekst NOT NULL, PRIMARNI KLJUČ (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Sada kreirajmo datoteku "sql.php". On je odgovoran za povezivanje sa bazom podataka. Ovaj kod, prvo, kreira varijable za server i korisnika kada se poveže sa serverom. Drugo, izabrat će bazu podataka, u ovom slučaju "USERAUTH". Ova datoteka mora biti uključena u "log.php" i "reg.php" za pristup bazi podataka.

    PHP kod

    Sljedeća je stranica za prijavu, neka se zove “login.php”. Prvo provjerava unesene podatke na greške. Stranica ima polja za korisničko ime, lozinku, dugme za slanje i link za registraciju. Kada korisnik klikne na dugme "Prijava", obrazac će biti obrađen kodom iz "log.php" fajla i zatim će se prijaviti.

    PHP kod

    Obrazac za prijavu

    Korisničko ime
    Lozinka
    Registracija

    Zatim pišemo skriptu za prijavu na sistem. Nazovimo ga "log.php". Ima funkciju čišćenja ulaznih podataka iz SQL injekcija koje mogu uništiti vašu skriptu. Drugo, prima podatke obrasca i provjerava njihovu ispravnost. Ako su ulazni podaci ispravni, skripta šalje korisnika na stranicu ovlaštenih korisnika, ako nije, postavlja greške i šalje korisnika na stranicu za prijavu.

    PHP kod

    Napravimo stranicu za registraciju, nazovimo je "register.php". Slična je stranici za prijavu, samo što ima još nekoliko polja, a umjesto linka za registraciju nalazi se link na login.php u slučaju da korisnik već ima nalog.

    PHP kod

    Upisnica

    Korisničko ime
    Email
    Lozinka
    ponovi lozinku
    Imam račun

    Sada ćemo kreirati skriptu za registraciju u datoteci "reg.php". Uključiće "sql.php" za povezivanje sa bazom podataka. Ista funkcija se koristi kao u skripti za prijavu za brisanje polja za unos. Varijable su postavljene za moguće greške. Sljedeća je funkcija za kreiranje jedinstvenog identifikatora koji nikada prije nije bio dat. Podaci iz obrasca za registraciju se zatim izdvajaju i verificiraju. Provjerava se da li je adresa e-pošte u ispravnom formatu i da je lozinka ponovo ispravno unesena. Skripta zatim provjerava da li postoji korisnik sa istim imenom u bazi podataka i, ako jeste, prijavljuje grešku. Konačno, kod dodaje korisnika u bazu podataka.

    PHP kod

    Također morate kreirati skriptu za odjavu korisnika iz sistema. Prekida sesiju za korisnika sa datim jedinstvenim ID-om i imenom, a zatim preusmjerava korisnika na stranicu za prijavu.

    PHP kod

    Konačno, "auth.php" skripta se može koristiti da stranice budu dostupne samo ovlaštenim korisnicima. Provjerava podatke za prijavu i, ako su tačni, dozvoljava korisniku da pregledava stranice, a ako nije, traži od njega da se prijavi. Pored toga, ako neko pokuša da hakuje sajt kreiranjem jedne od sesija, ona će biti prekinuta, kao u opštem slučaju.

    PHP kod

    Jedan od uslova u kodu iznad je predmet pitanja u .

    Sljedeći kod je potrebno umetnuti u stranicu za ovlaštene korisnike, zove se npr. “member.php”, ali vaš se može zvati kako god želite.

    PHP kod

    Ovlašteni ste za pristup ovoj stranici. Izači ( )

    Autentifikacija korisnika je spremna!

    Posljednja izmjena 5. aprila 2018. od strane Vincyja.

    Prijava i registracija korisnika su osnovni preduvjet za bilo koju CMS aplikaciju. Ovo je početni rad prilikom pokretanja projekta. Aplikacija sa autentifikacijom za prijavu korisnika pruža sigurnost sprečavanjem anonimnog pristupa. Postoje različiti načini da omogućite autentifikaciju u našoj aplikaciji, kao što je omogućavanje OAuth prijave ili implementacijom jedinstvene prijave (SSO) i sličnih drugih načina. U prethodnom tutorijalu vidjeli smo kako implementirati i također o tome.

    Ovaj primjer uključuje i funkcije prijave i registracije. Koristio sam MySQL bazu podataka za skladištenje registrovanih članova. Registracija korisnika će sadržavati unos za dobivanje detalja od korisnika. Prilikom slanja ovog obrasca, podaci obrasca se objavljuju u PHP-u i pohranjuju u bazu podataka. Korisnička lozinka će biti šifrirana prije pohranjivanja u bazu podataka. prije postavljanja u PHP kod. Kada je korisnik prijavljen sa važećim akreditivima, tada će korisniku i njemu biti dozvoljeno da nastave dalje.

    Obrazac za registraciju korisnika

    Ovaj kod služi za prikaz obrasca za registraciju korisniku. Kada korisnik pošalje obrazac sa svojim detaljima, JavaScript funkcija će biti pozvana da potvrdi korisnički unos. Nakon uspješne validacije, PHP kod će pročitati objavljene podatke obrasca kako bi izvršio umetanje baze podataka.