Brukermedlemskap med PHP

En opplæring for den aller nybegynner! Uansett hvor du går på Internett, er det en stift som du finner nesten overalt - brukerregistrering. Enten du trenger at brukerne skal registrere deg for sikkerhet eller bare for en ekstra funksjon, er det ingen grunn til ikke å gjøre det med denne enkle opplæringen. I denne opplæringen vil vi gå over det grunnleggende om brukerhåndtering, og ende opp med et enkelt medlemsområde som du kan implementere på din egen nettside.

Hvis du trenger ekstra hjelp eller vil ha en snarvei, sjekk utvalget av PHP-tjenesteleverandører på Envato Studio. Disse erfarne utviklerne kan hjelpe deg med alt fra en rask feilretting til å utvikle en hel app fra bunnen av. Så bare bla gjennom leverandørene, les anmeldelser og rangeringer, og velg den rette for deg.

Introduksjon

I denne opplæringen skal vi gå gjennom hvert trinn for å lage et brukerhåndteringssystem, sammen med et internt privatmeldingssystem. Vi skal gjøre dette ved hjelp av PHP, med en MySQL-database for lagring av all brukerinformasjon. Denne opplæringen er rettet mot absolutt nybegynnere til PHP, slik at ingen forkunnskaper i det hele tatt kreves - faktisk kan du bli litt lei hvis du er en erfaren PHP-bruker!

Denne opplæringen er ment som en grunnleggende introduksjon til økter, og å bruke databaser i PHP. Selv om sluttresultatet av denne opplæringen kanskje ikke umiddelbart virker nyttig for deg, vil ferdighetene du får fra denne opplæringen, tillate deg å fortsette å lage et eget medlemsskapssystem; passer til dine egne behov.

Før du begynner denne opplæringen, må du sørge for at du har følgende opplysninger:

  • Database vertsnavn - dette er den serveren som databasen din er vert for, i de fleste tilfeller vil dette bare være 'localhost'.
  • Databasenavn, Database Brukernavn, Database Passord - Før du starter denne opplæringen, bør du opprette en MySQL-database hvis du har evnen, eller har informasjonen for tilkobling til en eksisterende database. Denne informasjonen er nødvendig i hele opplæringen.

Hvis du ikke har denne informasjonen, må nettleverandøren din kunne gi dette til deg.

Nå som vi har formaliteter ut av veien, la oss komme i gang på opplæringen!

Trinn 1 - Innledende konfigurasjon

Sette opp databasen

Som nevnt i introduksjonen, trenger du en database for å fortsette forbi dette punktet i opplæringen. Til å begynne med skal vi lage et bord i denne databasen for å lagre vår brukerinformasjon.

Tabellen som vi trenger, lagrer vår brukerinformasjon; For vårt formål vil vi bruke et enkelt bord, men det ville være enkelt å lagre mer informasjon i ekstra kolonner hvis det er det du trenger. I vårt system trenger vi følgende fire kolonner:

  • Bruker-ID (Primærnøkkel)
  • Brukernavn
  • Passord
  • Epostadresse

I databasevilkår a Primærnøkkel er feltet som unikt identifiserer raden. I dette tilfellet, Bruker-ID vil være vår primære nøkkel. Som vi vil at dette skal øke hver gang en bruker registrerer, vil vi bruke det spesielle MySQL-alternativet - AUTO_INCREMENT.

SQL-spørringen for å opprette vårt bord er inkludert nedenfor, og vil vanligvis bli kjørt i "SQL" -fanen av phpMyAdmin.

CREATE TABLE 'users' ('UserID' INT (25) IKKE NULL AUTO_INCREMENT PRIMARY KEY, 'Brukernavn' VARCHAR (65) IKKE NULL, 'Passord' VARCHAR (32) IKKE NULL, 'EmailAddress' VARCHAR (255) IKKE NULL);

Opprette en grunnfil

For å forenkle opprettelsen av prosjektet vårt, skal vi lage en basisfil som vi kan inkludere i hver av filene vi lager. Denne filen vil inneholde informasjon om databaseforbindelsen, sammen med visse konfigurasjonsvariabler som vil hjelpe oss ut underveis.

Begynn med å opprette en ny fil: base.php, og skriv inn den følgende koden:

La oss ta en titt på noen av disse linjene skal vi? Det er noen funksjoner her som vi har brukt og ennå ikke forklart, så la oss ta en titt gjennom dem raskt og gjøre mening for dem - hvis du allerede forstår grunnleggende om PHP, kan du kanskje hoppe over denne forklaringen.

session_start ();

Denne funksjonen starter en økt for den nye brukeren, og senere i denne opplæringen lagrer vi informasjon i denne sesjonen slik at vi kan gjenkjenne brukere som allerede har logget inn. Hvis en økt allerede er opprettet, vil denne funksjonen gjenkjenne det og bære det går over til neste side.

mysql_connect ($ dbhost, $ dbuser, $ dbpass) eller dø ("MySQL Error:". mysql_error ()); mysql_select_db ($ dbname) eller dø ("MySQL Error:". mysql_error ());

Hver av disse funksjonene utfører en separat, men koblet oppgave. De mysql_connect funksjon forbinder vårt skript til databaseserveren ved hjelp av informasjonen vi ga den over, og mysql_select_db funksjon velger deretter hvilken database som skal brukes med skriptet. Hvis noen av funksjonene ikke fullfører, vil Funksjonen vil automatisk gå inn og stoppe skriptet fra behandling - forlater noen brukere med meldingen om at det var en MySQL-feil.

Trinn 2 - Tilbake til frontenden

Hva må vi gjøre først?

Det viktigste elementet på vår side er den første linjen i PHP; Denne linjen vil inneholde filen som vi opprettet over (base.php), og vil i hovedsak gi oss tilgang til alt fra den filen i vår nåværende fil. Vi vil gjøre dette med følgende linje av PHP-kode. Opprett en fil som heter index.php, og plasser denne koden øverst.

Start HTML-siden

Det første som vi skal gjøre for frontend er å lage en side der brukerne kan skrive inn sine detaljer for å logge inn, eller hvis de allerede er logget inn på en side der de kan velge hva de ønsker å gjøre. I denne opplæringen antar jeg at brukerne har grunnleggende kunnskap om hvordan HTML / CSS fungerer, og derfor skal jeg ikke forklare denne koden i detalj. for øyeblikket vil disse elementene være un-styled, men vi vil kunne endre dette senere når vi lager vårt CSS stilark.

Bruk av filen som vi nettopp har opprettet (index.php), skriv inn følgende HTML-kode under PHP-linjen som vi allerede har opprettet.

    Brukerhåndteringssystem (Tom Cameron for NetTuts)    

Hva skal vi vise dem?

Før vi skriver ut resten av siden, har vi noen spørsmål å spørre oss selv om:

  1. Er brukeren allerede logget inn?
  • Ja - Vi må vise dem en side med muligheter for dem å velge.
  • Nei - vi fortsetter på neste spørsmål.
  • Har brukeren allerede sendt innloggingsopplysningene sine?
    • Ja - Vi må sjekke deres detaljer, og hvis det er riktig, logger vi dem inn på nettstedet.
    • Nei - vi fortsetter på neste spørsmål.
  • Hvis begge de ovennevnte ble besvart Nei, Vi kan nå anta at vi må vise et påloggingsskjema til brukeren.
  • Disse spørsmålene er faktisk de samme spørsmålene som vi skal implementere i vår PHP-kode. Vi skal gjøre dette i form av hvis uttalelser. Uten å legge inn noe i noen av dine nye filer, kan vi se på logikken som vi skal bruke først.

    Ser forvirrende ut, ikke sant? La oss dele det ned i mindre seksjoner og gå over dem en om gangen.

    hvis (! tomt ($ _ SESSION ['LoggedIn']) &&! tomt ($ _ SESSION ['Brukernavn'])) // la brukeren få tilgang til hovedsiden

    Når en bruker logger inn på vår nettside, skal vi lagre informasjonen i en økt - når som helst etter dette kan vi få tilgang til denne informasjonen i en spesiell global PHP-array - $ _SESSION. Vi bruker tømme funksjon for å sjekke om variabelen er tom, med operatøren ! foran den. Derfor sier vi:

    Hvis variabelen $ _SESSION ['LoggedIn'] ikke er tom og $ _SESSION ['Brukernavn'] ikke er tom, kjør dette koden.

    Neste linje fungerer på samme måte, bare denne gangen med $ _POST global array. Denne gruppen inneholder alle data som ble sendt fra innloggingsskjemaet som vi vil lage senere i denne opplæringen. Den endelige linjen utføres bare hvis ingen av de foregående setningene er oppfylt; I dette tilfellet vil vi vise brukeren et påloggingsskjema.

    Så nå, når vi forstår logikken, la oss få noe innhold i mellom de seksjonene. I din index.php fil, skriv inn følgende under det du allerede har.

     

    Medlemsområde

    og din e-postadresse er .

    Suksess"; ekko "

    Vi omdirigerer deg nå til medlemsområdet.

    "; ekko ""; else echo"

    Feil

    "; ekko "

    Beklager, kontoen din ble ikke funnet. Vennligst klikk her for å prøve igjen.

    "; annet ?>

    Medlems innlogging

    Takk for at du besøker! Vennligst logg inn nedenfor, eller klikk her for å registrere deg.



    Forhåpentligvis vil de første og siste kodeblokkene ikke forvirre deg for mye. Det vi virkelig trenger å sette seg fast i nå, er hva du har kommet til denne opplæringen for - PHP-koden. Vi skal nå gjennom den andre delen en linje av gangen, og jeg skal forklare hva hver kodekode her er beregnet på.

     $ brukernavn = mysql_real_escape_string ($ _ POST ['brukernavn']); $ password = md5 (mysql_real_escape_string ($ _ POST ['passord']));

    Det er to funksjoner som må forklares for dette. for det første, mysql_real_escape_string - en veldig nyttig funksjon for å rense databaseinngangen. Det er ikke et feilsøkende mål, men dette vil holde ut de fleste skadelige hackere der ute ved å fjerne uønskede deler av det som er lagt inn i vårt innloggingsskjema. for det andre, md5. Det ville være umulig å gå i detalj her, men denne funksjonen krypterer bare hva som er passert til det - i dette tilfellet brukerens passord - for å hindre nysgjerrige øyne fra å lese det.

     $ checklogin = mysql_query ("VELG * FRA brukere WHERE Brukernavn = '". $ brukernavn. "' OG Passord = '". $ passord. "'"); hvis (mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ row ['EmailAddress']; $ _SESSION ['Brukernavn'] = $ brukernavn; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;

    Her har vi kjernen i vår innloggningskode; For det første driver vi en forespørsel på vår database. I denne søken søker vi etter alt som gjelder et medlem, hvis brukernavn og passord stemmer overens med verdiene til vår $ brukernavn og $ passord som brukeren har gitt. På neste linje har vi en if-setning, hvor vi sjekker hvor mange resultater vi har mottatt - hvis det ikke er noen resultater, blir denne delen ikke behandlet. Men hvis det er et resultat, vet vi at brukeren eksisterer, og så skal vi logge dem inn.

    De to neste linjene er å skaffe brukerens e-postadresse. Vi har allerede denne informasjonen fra spørringen som vi allerede har kjørt, slik at vi lett kan få tilgang til denne informasjonen. Først får vi en rekke data som er hentet fra databasen - i dette tilfellet bruker vi PHP-funksjonen mysql_fetch_array. Jeg har da tildelt verdien av Epostadresse feltet til en variabel som vi kan bruke senere.

    Nå setter vi økten. Vi lagrer brukerens brukernavn og e-postadresse i økten, sammen med en spesiell verdi for oss å vite at de har blitt logget inn ved hjelp av dette skjemaet. Etter dette er alt sagt og gjort, vil de da bli omdirigert til medlemsområdet ved hjelp av META REFRESH i koden.

    Så, hvordan ser prosjektet nå ut til en bruker?

    Flott! Det er på tide å gå videre, for å sikre at folk faktisk kan komme inn på nettstedet ditt.

    La folket registrere deg

    Det er alt bra og bra å ha et påloggingsskjema på nettstedet ditt, men nå må vi la brukeren kunne bruke det - vi må lage et påloggingsskjema. Lag en fil som heter register.php og legg inn følgende kode i den.

        Brukerhåndteringssystem (Tom Cameron for NetTuts)    
    Feil"; ekko "

    Beklager, det brukernavnet er tatt. Vennligst gå tilbake og prøv igjen.

    "; else $ registerquery = mysql_query (" INSERT INTO brukere (Brukernavn, Passord, EmailAddress) VALUES ('". $ brukernavn."', '". $ passord.' ','". $ email. "') "); hvis ($ registerquery) echo"

    Suksess

    "; ekko "

    Din konto ble opprettet. Vennligst klikk her for å logge inn.

    "; else echo"

    Feil

    "; ekko "

    Beklager, din registrering mislyktes. Vennligst gå tilbake og prøv igjen.

    "; annet ?>

    Registrere

    Vennligst skriv inn dine opplysninger nedenfor for å registrere deg.




    Så det er ikke mye nytt PHP som vi ennå ikke har lært i den delen. La oss bare ta en rask titt på det SQL-spørsmålet skjønt, og se om vi kan finne ut hva det gjør.

    $ registerquery = mysql_query ("INSERT INTO users (Brukernavn, Passord, EmailAddress) VALUES ('". $ brukernavn. "', '". $ passord. "', '". $ email. "')");

    Så, her legger vi brukeren til vår database. Denne gangen, i stedet for å hente data setter vi inn det; så vi spesifiserer først hvilke kolonner vi legger inn data i (ikke glem, vår UserID vil gå opp automatisk). I VALUES () område, vi forteller det hva du skal sette i hver kolonne; i dette tilfellet våre variabler som kom fra brukerens innspill. Så, la oss prøve. Når du har gjort en konto på ditt splitter nye registreringsskjema, er det det du vil se for medlemmets område.

    Pass på at de kan logge ut

    Vi er nesten på slutten av denne delen, men det er enda en ting vi trenger før vi er ferdige her - en måte at brukeren kan logge ut fra sine kontoer. Dette er veldig lett å gjøre (heldigvis for oss); opprett en ny fil med navnet logout.php og skriv inn følgende i det.

     

    I dette er vi først tilbakestille vår globale $ _SESSION array, og så ødelegger vi økten helt.

    Og det er slutten på den delen, og slutten av PHP-koden. La oss nå gå videre til vår siste del.

    Trinn 3 - Få stilig

    Jeg kommer ikke til å forklare mye i denne delen - hvis du ikke forstår HTML / CSS, vil jeg anbefale det når du kommer til de mange gode opplæringene på dette nettstedet for å komme i gang. Opprett en ny fil som heter style.css og skriv inn følgende i det; Dette vil utforme alle sidene som vi har laget så langt.

    * margin: 0; polstring: 0;  kropp font-family: Trebuchet MS;  en farge: # 000;  a: svever, a: aktiv, a: besøkt tekst-dekorasjon: ingen;  #main width: 780px; margin: 0 auto; margin-topp: 50px; polstring: 10px; grense: 1px solid #CCC; bakgrunnsfarge: #EEE;  form fieldset border: 0;  form fieldset p br clear: left;  label margin-top: 5px; skjerm: blokk; bredde: 100px; polstring: 0; flyte: venstre;  input font-family: Trebuchet MS; grense: 1px solid #CCC; margin-bunn: 5px; bakgrunnsfarge: #FFF; polstring: 2px;  inngang: svever grense: 1px solid # 222; bakgrunnsfarge: #EEE; 

    La oss nå se på noen skjermbilder av hva vårt siste prosjekt skal se ut som:

    Påloggingsskjemaet.

    Medlemsområdet.

    Registreringsskjemaet.

    Og endelig…

    Og det er det! Du har nå et medlemsområde som du kan bruke på nettstedet ditt. Jeg kan se mange mennesker riste på hodet og rope på sine skjermer at det ikke er noe for dem - du har rett. Men det jeg håper noen nybegynnere i PHP har lært, er grunnleggende om hvordan du bruker en database, og hvordan du bruker økter til å lagre informasjon. De vitale ferdighetene til å skape en hvilken som helst webapplikasjon.

    • Abonner på NETTUTS RSS-feed for flere daglige webutviklinger og artikler.