Godless auth-registrering php

10/05/2015 Romchik

God dag. I denne artikkelen vil vi bruke et eksempel for å analysere brukerregistrering i . Aktiver deretter brukeren ved å bekrefte e-postadressen hans. Og til slutt brukerautorisasjon i . Men bare aktive brukere skal være autorisert.

Det første vi skal gjøre er å lage en kontroller og en visning for registrering.

Opprette et registreringsskjema

Gå til katalogen med ressursmalene og lag auth-underkatalogen i den. Nå i auth-mappen vil vi lage en fil register.blade.php med følgende kode:

Registrering

((--Feil--)) @if ($errors->har()) ×
    @foreach($errors->all() som $error)
  • ((($error)))
  • @endforeach
@endif (!! csrf_field() ! Email Пароль Повторите пароль Отправить !}

Jeg vil ikke forklare koden ovenfor, alt er klart her.

App/Http/Controllers/Auth/AuthController.php

Vi vil bare overstyre AuthController.php-kontrollermetodene. Så for å vise registreringsskjemaet er det en getRegister-metode. Vi berører ikke denne metoden.

La oss nå gå videre til ruter. Åpne filen:

Og definer ruten til metoden vår:

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

La oss nå åpne applikasjonen vår i nettleseren. Flott, vi ser påmeldingsskjemaet.

Brukerregistrering i

La oss umiddelbart definere ruten for brukerregistrering. La oss gå til filen:

App/Http/Controllers/routes.php

Og legg til følgende rute:

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

La oss nå lage en tabell for å lagre brukere. Det er allerede en migrering for denne tabellen, men den passer ikke for oss. La oss endre det. La oss gå til filen:

Database/migrations/2014_10_12_create_users_table.php

Og la oss endre koden:

I mitt tilfelle ser det slik ut:

Lagre bd.php .
Flott! Vi har en tabell i databasen og en kobling til den. Nå kan du begynne å lage en side der brukerne vil legge igjen dataene sine.

3. Lag en reg.php-fil med innholdet (alle kommentarer inne):



Registrering


Registrering


Din pålogging:




Ditt passord:








4. Lag en fil som vil legge inn data i databasen og lagre brukeren. save_user.php (kommentarer inne):

5. Nå kan våre brukere registrere seg! Deretter må du opprette en "dør" for allerede registrerte brukere for å komme inn på nettstedet. index.php (kommentarer inne):




Hjemmeside


Hjemmeside


Din pålogging:


Ditt passord:






Registrere



OK, det er over nå! Leksjonen kan være kjedelig, men veldig nyttig. Bare ideen om registrering vises her, så kan du forbedre den: legg til sikkerhet, design, datafelt, lasting av avatarer, logg ut av kontoen din (for å gjøre dette, ødelegg du ganske enkelt variabler fra økten med funksjonen deaktivert) og så videre. Lykke til!

Jeg sjekket alt, det fungerer som det skal!

I denne artikkelen lærer du hvordan du oppretter et registrerings- og påloggingsskjema ved hjelp av HTML, JavaScript, PHP og MySql. Slike skjemaer brukes på nesten alle nettsider, uansett type. De er laget for et forum, en nettbutikk, sosiale nettverk (som Facebook, Twitter, Odnoklassniki) og mange andre typer nettsteder.

Hvis du har et nettsted på din lokale datamaskin, håper jeg at du allerede har en lokal server installert og kjører. Uten det vil ingenting fungere.

Opprette en tabell i databasen

For å implementere brukerregistrering trenger vi først og fremst en database. Hvis du allerede har det, så flott, ellers må du lage det. I artikkelen forklarer jeg i detalj hvordan du gjør dette.

Og så, vi har en database (forkortet som DB), nå må vi lage en tabell brukere der vi vil legge til våre registrerte brukere.

Jeg forklarte også hvordan du lager en tabell i en database i artikkelen. Før vi lager en tabell, må vi bestemme hvilke felt den skal inneholde. Disse feltene vil samsvare med feltene fra registreringsskjemaet.

Så tenkte vi, forestilte oss hvilke felt skjemaet vårt ville ha og laget en tabell brukere med disse feltene:

  • id- Identifikator. Felt id Hver tabell i databasen bør ha det.
  • fornavn- For å lagre navnet.
  • etternavn- For å bevare etternavnet.
  • e-post- For å lagre postadressen. Vi vil bruke e-post som innlogging, så dette feltet må være unikt, det vil si ha UNIK indeks.
  • email_status- Felt for å angi om e-posten er bekreftet eller ikke. Hvis e-posten er bekreftet, vil den ha en verdi på 1, ellers er verdien 0.
  • passord- For å lagre passordet.


Hvis du vil at registreringsskjemaet ditt skal ha noen andre felt, kan du også legge dem til her.

Det er det, bordet vårt brukere klar. La oss gå videre til neste trinn.

Databasetilkobling

Vi har opprettet databasen, nå må vi koble til den. Vi kobler til ved hjelp av PHP-utvidelsen MySQLi.

Lag en fil med navnet i mappen på nettstedet vårt dbconnect.php, og skriv følgende skript i den:

Denne filen dbconnect.php må kobles til skjemabehandlere.

Legg merke til variabelen $address_site, her indikerte jeg navnet på testsiden min som jeg skal jobbe med. Vennligst oppgi navnet på nettstedet ditt.

Nettstedets struktur

La oss nå se på HTML-strukturen til nettstedet vårt.

Vi vil flytte topp- og bunnteksten til nettstedet til separate filer, header.php Og bunntekst.php. Vi vil inkludere dem på alle sider. Nemlig på hovedsiden (fil index.php), til siden med registreringsskjemaet (fil form_register.php) og til siden med autorisasjonsskjemaet (fil form_auth.php).

Blokkér med lenkene våre, registrering Og autorisasjon, legg dem til i sideoverskriften slik at de vises på alle sider. En lenke kommer inn til siden med registreringsskjemaet (fil form_register.php) og den andre til siden med autorisasjonsskjemaet (fil form_auth.php).

Innhold i header.php-filen:

Navnet på nettstedet vårt

Som et resultat ser hovedsiden vår slik ut:


Selvfølgelig kan nettstedet ditt ha en helt annen struktur, men dette er ikke viktig for oss nå. Hovedsaken er at det er lenker (knapper) for registrering og autorisasjon.

La oss nå gå videre til registreringsskjemaet. Som du allerede forstår, har vi den på fil form_register.php.

Gå til databasen (i phpMyAdmin), åpne tabellstrukturen brukere og se på hvilke felt vi trenger. Det betyr at vi trenger felt for å legge inn for- og etternavn, et felt for å legge inn postadressen (E-post) og et felt for å legge inn passordet. Og av sikkerhetshensyn vil vi legge til et felt for å legge inn en captcha.

På serveren, som et resultat av behandling av registreringsskjemaet, kan det oppstå ulike feil på grunn av at brukeren ikke vil kunne registrere seg. Derfor, for at brukeren skal forstå hvorfor registreringen mislykkes, er det nødvendig å vise meldinger om disse feilene.

Før du viser skjemaet, legg til en blokk for å vise feilmeldinger fra økten.

Og en ting til, hvis brukeren allerede er autorisert, og av nysgjerrighet går han direkte til registreringssiden ved å skrive i adressefeltet til nettleseren site_address/form_register.php, så i dette tilfellet, i stedet for registreringsskjemaet, vil vi vise en overskrift som sier at han allerede er registrert.

Generelt, filkoden form_register.php vi fikk dette:

Du er allerede registrert

I nettleseren ser siden med registreringsskjemaet slik ut:


Ved å bruke det nødvendige attributtet gjorde vi alle felt obligatoriske.

Vær oppmerksom på koden til registreringsskjemaet der captchaen vises:


Vi spesifiserte banen til filen i verdien av src-attributtet for bildet captcha.php, som genererer denne captchaen.

La oss se på filkoden captcha.php:

Koden er godt kommentert, så jeg vil fokusere på bare ett punkt.

Inne i en funksjon imageTtfText(), er banen til fonten spesifisert verdana.ttf. Så for at captchaen skal fungere riktig, må vi opprette en mappe fonter, og plasser fontfilen der verdana.ttf. Du kan finne den og laste den ned fra Internett, eller ta den fra arkivet med materialene i denne artikkelen.

Vi er ferdige med HTML-strukturen, det er på tide å gå videre.

Sjekker e-postens gyldighet ved hjelp av jQuery

Ethvert skjema må kontrollere gyldigheten av de angitte dataene, både på klientsiden (ved hjelp av JavaScript, jQuery) og på serversiden.

Vi må være spesielt oppmerksomme på E-post-feltet. Det er svært viktig at oppgitt postadresse er gyldig.

For dette inndatafeltet setter vi e-posttypen (type="email"), dette advarer oss litt mot feil formater. Men dette er ikke nok, for gjennom kodeinspektøren som nettleseren gir oss, kan vi enkelt endre attributtverdien type Med e-posttekst, og det er det, sjekken vår vil ikke lenger være gyldig.


Og i dette tilfellet må vi gjøre en mer pålitelig sjekk. For å gjøre dette bruker vi jQuery-biblioteket fra JavaScript.

For å koble til jQuery-biblioteket, i filen header.php mellom tagger , før den avsluttende taggen , legg til denne linjen:

Umiddelbart etter denne linjen vil vi legge til e-postvalideringskoden. Her vil vi legge til en kode for å sjekke lengden på det angitte passordet. Lengden må være minst 6 tegn.

Ved å bruke dette skriptet sjekker vi den angitte e-postadressen for gyldighet. Hvis brukeren skrev inn feil e-post, viser vi en feilmelding om dette og deaktiverer innsendingsknappen for skjema. Hvis alt er i orden, fjerner vi feilen og aktiverer innsendingsknappen for skjema.

Og så er vi ferdige med skjemavalidering på klientsiden. Nå kan vi sende det til serveren, hvor vi også vil gjøre et par kontroller og legge til data i databasen.

Bruker registrering

Vi sender skjemaet til filen for behandling register.php, via POST-metoden. Navnet på denne behandlerfilen er spesifisert i attributtverdien handling. Og sendemetoden er spesifisert i attributtverdien metode.

Åpne denne filen register.php og det første vi må gjøre er å skrive en øktstartfunksjon og koble til filen vi opprettet tidligere dbconnect.php(I denne filen har vi laget en kobling til databasen). Og la oss umiddelbart erklære cellene feilmeldinger Og suksessmeldinger i den globale sesjonsmatrisen. I feilmeldinger vi vil registrere alle feilmeldinger som oppstår under skjemabehandling, og i suksessmeldinger, vil vi spille inn glade meldinger.

Før vi fortsetter, må vi sjekke om skjemaet i det hele tatt ble sendt inn. En angriper kan se på attributtverdien handling fra skjemaet, og finn ut hvilken fil som behandler dette skjemaet. Og han kan ha ideen om å gå direkte til denne filen ved å skrive inn følgende adresse i nettleserens adresselinje: http://site_address/register.php

Så vi må se etter en celle i den globale POST-arrayen hvis navn samsvarer med navnet på "Registrer"-knappen vår fra skjemaet. På denne måten sjekker vi om "Registrer"-knappen ble trykket eller ikke.

Hvis en angriper prøver å gå direkte til denne filen, vil de motta en feilmelding. La meg minne deg på at $address_site-variabelen inneholder navnet på nettstedet og det ble deklarert i filen dbconnect.php.

Captcha-verdien i økten ble lagt til da den ble generert, i filen captcha.php. Som en påminnelse vil jeg vise deg denne kodebiten fra filen igjen captcha.php, hvor captcha-verdien legges til økten:

La oss nå gå videre til selve bekreftelsen. I fil register.php, inne i if-blokken, der vi sjekker om "Registrer"-knappen ble klikket, eller snarere hvor kommentaren " er indikert" // (1) Plass for neste kodebit"vi skriver:

//Sjekk den mottatte captchaen //Trim mellomrommene fra begynnelsen og slutten av linjen $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Sammenlign den mottatte verdien med verdien fra økten. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Hvis captchaen ikke er riktig, så returnerer vi brukeren til registreringssiden, og der vil vi vise en feilmelding til ham om at han skrev inn feil captcha . $error_message = "

Feil! Du skrev inn feil captcha

"; // Lagre feilmeldingen til økten. $_SESSION["error_messages"] = $error_message; // Returner brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: " .$address_site ."/form_register.php"); //Stopp skriptet exit(); ) // (2) Plasser for neste kodebit )else( //Hvis captchaen ikke er bestått eller den er tom, avslutter du ("

Feil! Det er ingen bekreftelseskode, det vil si en captcha-kode. Du kan gå til hovedsiden.

"); }

Deretter må vi behandle de mottatte dataene fra POST-arrayet. Først av alt må vi sjekke innholdet i den globale POST-matrisen, det vil si om det er celler der hvis navn tilsvarer navnene på inndatafeltene fra skjemaet vårt.

Hvis cellen eksisterer, trimmer vi mellomrommene fra begynnelsen og slutten av linjen fra denne cellen, ellers omdirigerer vi brukeren tilbake til siden med registreringsskjemaet.

Deretter, etter at vi har trimmet mellomrommene, legger vi til linjen i variabelen og sjekker denne variabelen for tomhet; hvis den ikke er tom, går vi videre, ellers omdirigerer vi brukeren tilbake til siden med registreringsskjemaet.

Lim inn denne koden på den angitte plasseringen" // (2) Plass for neste kodebit".

/* Sjekk om det er data sendt fra skjemaet i den globale matrisen $_POST og pakk inn de innsendte dataene i vanlige variabler.*/ if(isset($_POST["first_name"]))( //Trim mellomrommene fra begynnelsen og slutten av strengen $first_name = trim($_POST["first_name"]); //Sjekk variabelen for tomhet if(!empty($first_name))( // For sikkerhets skyld, konverter spesialtegn til HTML-entiteter $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Skriv inn navnet ditt

Navnefelt mangler

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) if( isset($_POST["last_name"]))( //Trim mellomrom fra begynnelsen og slutten av linjen $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // For sikkerhets skyld, konverter spesialtegn til HTML-enheter $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Vennligst fyll inn ditt etternavn

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) )else ( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Etternavnsfelt mangler

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) if( isset($_POST["email"]))( //Trim mellomrom fra begynnelsen og slutten av linjen $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Kodeplassering for å sjekke formatet til e-postadressen og dens unikhet )else( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Skriv inn din email

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) )else ( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) if( isset($_POST["passord"]))( //Trim mellomrom fra begynnelsen og slutten av strengen $password = trim($_POST["passord"]); if(!empty($password)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Krypter passordet $password = md5($password."top_secret"); )else( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Skriv inn passordet ditt

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) )else ( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) // (4) Sted for koden for å legge til en bruker i databasen

Særlig viktig er feltet e-post. Vi må sjekke formatet på den mottatte postadressen og dens unikhet i databasen. Det vil si, er det noen bruker med samme e-postadresse som allerede er registrert?

På det angitte stedet" // (3) Kodeplassering for å sjekke formatet til postadressen og dens unikhet" legg til følgende kode:

//Sjekk formatet til den mottatte e-postadressen ved å bruke et regulært uttrykk $reg_email = "/^**@(+(*+)*\.)++/i"; //Hvis formatet på den mottatte e-postadressen ikke samsvarer med det regulære uttrykket if(!preg_match($reg_email, $email))( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Du skrev inn feil e-post

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); ) // Vi sjekker om en slik adresse allerede er i databasen. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Hvis antall mottatte er det nøyaktig én rad, noe som betyr at brukeren med denne e-postadressen allerede er registrert if($result_query->num_rows == 1)( //Hvis resultatet ikke er falsk if(($row = $result_query->fetch_assoc()) != false) ( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

En bruker med denne e-postadressen er allerede registrert

"; //Retur brukeren til registreringssideoverskriften("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); )else( // Lagre feilmeldingen til økten . $_SESSION["error_messages"] .= "

Feil i databasespørring

"; //Retur brukeren til registreringssideoverskriften("HTTP/1.1 301 flyttet permanent"); header("Sted: ".$address_site."/form_register.php"); ) /* lukker utvalget */ $ result_query-> close(); //Stopp skriptet exit(); ) /* lukker utvalget */ $result_query->close();

Og så, vi er ferdige med alle sjekkene, det er på tide å legge brukeren til databasen. På det angitte stedet" // (4) Sted for koden for å legge til en bruker i databasen" legg til følgende kode:

//Spørring om å legge til en bruker i databasen $result_query_insert = $mysqli->query("INSERT INTO `brukere` (fornavn, etternavn, e-post, passord) VERDIER ("".$fornavn."", "".$last_name ." ", "".$email.", "".$passord."")"); if(!$result_query_insert)( // Lagre feilmeldingen i økten. $_SESSION["error_messages"] .= "

Feil ved forespørsel om å legge til bruker i databasen

"; //Retur brukeren til registreringssidens header("HTTP/1.1 301 flyttet permanent"); header("Plassering: ".$address_site."/form_register.php"); //Stopp scriptet exit(); )else( $_SESSION["success_messages"] = "

Registreringen fullført!!!
Nå kan du logge inn med brukernavn og passord.

"; //Send brukeren til autorisasjonssidens header("HTTP/1.1 301 flyttet permanent"); header("Sted: ".$address_site."/form_auth.php"); ) /* Fullfører forespørselen */ $ result_query_insert-> close(); //Lukk forbindelsen til databasen $mysqli->close();

Hvis det oppstod en feil i forespørselen om å legge til en bruker i databasen, legger vi til en melding om denne feilen i økten og returnerer brukeren til registreringssiden.

Ellers, hvis alt gikk bra, legger vi også til en melding til økten, men denne gangen er det mer behagelig, nemlig vi forteller brukeren at registreringen var vellykket. Og vi omdirigerer den til siden med autorisasjonsskjemaet.

Skriptet for å sjekke e-postadresseformatet og passordlengden er i filen header.php, så det vil også gjelde for felt fra dette skjemaet.

Økten startes også i filen header.php, så i filen form_auth.php Det er ikke nødvendig å starte en økt, fordi vi får en feilmelding.


Som jeg allerede har sagt, fungerer skriptet for å sjekke e-postadresseformatet og passordlengden også her. Derfor, hvis brukeren oppgir feil e-postadresse eller kort passord, vil han umiddelbart motta en feilmelding. En knapp å komme inn vil bli inaktiv.

Etter å ha rettet feilene, knappen å komme inn blir aktiv, og brukeren vil kunne sende inn skjemaet til serveren, hvor det vil bli behandlet.

Brukerautorisasjon

Å tilskrive verdi handling autorisasjonshandikapet har en fil spesifisert auth.php, betyr dette at skjemaet vil bli behandlet i denne filen.

Og så åpne filen auth.php og skriv kode for å behandle autorisasjonsskjemaet. Det første du må gjøre er å starte en økt og koble til filen dbconnect.php for å koble til databasen.

Når du klikker på exit-lenken fra siden, blir vi tatt til en fil logout.php, hvor vi rett og slett ødelegger cellene med e-postadressen og passordet fra økten. Etter dette returnerer vi brukeren tilbake til siden der lenken ble klikket exit.

Filkode logout.php:

Det er alt. Nå vet du hvordan du implementerer og behandler brukerregistrerings- og autorisasjonsskjemaer på nettstedet ditt. Disse skjemaene finnes på nesten alle nettsteder, så enhver programmerer bør vite hvordan de lager dem.

Vi lærte også hvordan man validerer inndata, både på klientsiden (i nettleseren, ved hjelp av JavaScript, jQuery) og på serversiden (ved hjelp av PHP). Vi lærte også hvordan vi implementerer en prosedyre for å forlate nettstedet.

Alle skript er testet og fungerer. Du kan laste ned arkivet med filene til denne lille siden fra denne lenken.

I fremtiden vil jeg skrive en artikkel hvor jeg skal beskrive. Og jeg planlegger også å skrive en artikkel der jeg skal forklare (uten å laste inn siden på nytt). Så, for å holde deg informert om utgivelsen av nye artikler, kan du abonnere på nettstedet mitt.

Hvis du har spørsmål, vennligst kontakt meg, og hvis du oppdager feil i artikkelen, vennligst gi meg beskjed.

Leksjonsplan (del 5):

  • Opprette en HTML-struktur for autorisasjonsskjemaet
  • Vi behandler de mottatte dataene
  • Vi viser brukerens hilsen i sideoverskriften
  • Likte du artikkelen?

    Vi vil lære hvordan du gjør enkel brukerautentisering på nettstedet. Nettstedet kan ha sider kun for autoriserte brukere, og de vil fungere fullt ut hvis vi legger til autentiseringsblokken vår til dem. For å lage den trenger du en MySQL-database. Den kan ha 5 kolonner (minimum), eller flere hvis du ønsker å legge til informasjon om brukere. La oss kalle databasen "Userauth".

    La oss lage følgende felt i den: ID for telling av antall brukere, UID for brukerens unike identifikasjonsnummer, Brukernavn for brukerens navn, E-post for hans e-postadresse og Passord for passordet. Du kan bruke din eksisterende database til å autorisere brukeren, bare, som i tilfellet med en ny database, opprette følgende tabell i den.

    MySQL-kode

    OPPRETT TABELL `brukere` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Brukernavn` tekst NOT NULL, `E-post` tekst NOT NULL, `Passord` tekst NOT NULL, PRIMÆR NØKKEL (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    La oss nå lage filen "sql.php". Den er ansvarlig for å koble til databasen. Denne koden oppretter for det første variabler for serveren og brukeren når han kobler til serveren. For det andre vil den velge databasen, i dette tilfellet "USERAUTH". Denne filen må være inkludert i "log.php" og "reg.php" for å få tilgang til databasen.

    PHP-kode

    Neste er påloggingssiden, la den hete "login.php". Først sjekker den de angitte dataene for feil. Siden har felt for brukernavn, passord, send-knapp og registreringslenke. Når brukeren klikker på "Logg inn"-knappen, vil skjemaet bli behandlet av koden fra "log.php"-filen og deretter logget inn.

    PHP-kode

    Innloggingsskjema

    Brukernavn
    Passord
    Registrering

    Deretter skriver vi et script for å logge inn i systemet. La oss kalle det "log.php". Den har en funksjon for å rydde opp i inndataene fra SQL-injeksjoner som kan ødelegge skriptet ditt. For det andre mottar den skjemadataene og kontrollerer at de er korrekte. Hvis inndataene er korrekte, sender skriptet brukeren til siden for autoriserte brukere, hvis ikke, angir det feil og sender brukeren til påloggingssiden.

    PHP-kode

    La oss lage en registreringsside, kall den "register.php". Den ligner på påloggingssiden, bare den har noen flere felt, og i stedet for en registreringslenke er det en lenke til login.php i tilfelle brukeren allerede har en konto.

    PHP-kode

    Registreringsskjema

    Brukernavn
    E-post
    Passord
    Gjenta passord
    Jeg har en konto

    Nå skal vi lage et registreringsskript i filen "reg.php". Den vil inkludere "sql.php" for å koble til databasen. Den samme funksjonen brukes som i innloggingsskriptet for å tømme inntastingsfeltet. Variabler er satt for mulige feil. Neste er en funksjon for å lage en unik identifikator som aldri har blitt gitt før. Dataene fra registreringsskjemaet trekkes deretter ut og verifiseres. Det foretas en sjekk for å sikre at e-postadressen er i riktig format og at passordet er angitt riktig på nytt. Skriptet sjekker deretter om det er en bruker med samme navn i databasen og rapporterer i så fall en feil. Til slutt legger koden brukeren til databasen.

    PHP-kode

    Du må også lage et skript for å logge brukeren ut av systemet. Den avslutter økten for brukeren med gitt unike ID og navn, og omdirigerer deretter brukeren til påloggingssiden.

    PHP-kode

    Til slutt kan "auth.php"-skriptet brukes til å gjøre sider tilgjengelig kun for autoriserte brukere. Den sjekker innloggingsdetaljene og, hvis de er korrekte, lar brukeren bla gjennom sidene, og hvis ikke, ber den om å logge inn. I tillegg, hvis noen prøver å hacke nettstedet ved å opprette en av øktene, vil det bli avbrutt, som i det generelle tilfellet.

    PHP-kode

    En av betingelsene i koden ovenfor er temaet for spørsmålet i .

    Følgende kode må settes inn på siden for autoriserte brukere, den heter for eksempel «member.php», men din kan kalles hva du vil.

    PHP-kode

    Du er autorisert til å få tilgang til denne siden. Gå ut ( )

    Brukerautentisering er klar!

    Sist endret 5. april 2018 av Vincy.

    Brukerpålogging og registrering er et grunnleggende krav for alle CMS-applikasjoner. Dette er det første arbeidet mens du starter et prosjekt. Applikasjon med brukerpåloggingsautentisering gir sikkerhet ved å forhindre anonym tilgang. Det er forskjellige måter å aktivere autentisering i applikasjonen vår, som ved å aktivere OAuth-pålogging eller ved å implementere Single Sign-on (SSO) og lignende andre måter. I en tidligere opplæring har vi sett hvordan du implementerer og også om.

    Dette eksemplet inkluderer både påloggings- og registreringsfunksjoner. Jeg har brukt MySQL-database for å lagre de registrerte medlemmene. Brukerregistreringen vil inneholde input for å få detaljene fra brukeren. Når du sender inn dette skjemaet, blir skjemadataene lagt ut til PHP og lagret i databasen. Brukerpassordet vil bli kryptert før det lagres i databasen. før du legger ut til PHP-koden. Når brukeren er logget på med gyldig legitimasjon, vil brukeren og han få lov til å fortsette videre.

    Brukerregistreringsskjema

    Denne koden skal vise registreringsskjemaet til brukeren. Når brukeren sender inn skjemaet med sine detaljer, vil JavaScript-funksjonen kalles opp for å validere brukerinndata. Etter vellykket validering vil PHP-koden lese de postede skjemadataene for å utføre databaseinnsettingen.