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.
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:
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!
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:
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);
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 dø
Funksjonen vil automatisk gå inn og stoppe skriptet fra behandling - forlater noen brukere med meldingen om at det var en MySQL-feil.
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.
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:
- 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 hovedsidenNå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 brukertø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
=$_SESSION['Username']?> og din e-postadresse er =$_SESSION['EmailAddress']?>
. 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.
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.