En handledning för den allra nybörjare! Oavsett var du går på Internet finns det en häftklammer som du hittar nästan överallt - användarregistrering. Oavsett om du behöver dina användare att registrera sig för säkerhet eller bara för en extra funktion, finns det ingen anledning att inte göra det med den här enkla handledningen. I den här handledningen kommer vi att gå över grunderna i användarhanteringen och sluta med ett enkelt medlemsområde som du kan implementera på din egen webbplats.
Om du behöver extra hjälp eller vill ha en genväg, kolla in utbudet av PHP-tjänsteleverantörer på Envato Studio. Dessa erfarna utvecklare kan hjälpa dig med allt från en snabb buggfix för att utveckla en hel app från början. Så bläddra bland leverantörerna, läs recensioner och betyg och välj den rätta för dig.
I den här handledningen kommer vi att gå igenom varje steg för att skapa ett användarhanteringssystem, tillsammans med ett interna användares privata meddelandesystem. Vi ska göra detta med PHP, med en MySQL-databas för att lagra all användarinformation. Denna handledning riktar sig till absoluta nybörjare till PHP, så det krävs ingen förkunskapskännedom - i själva verket kan du bli lite uttråkad om du är en erfaren PHP-användare!
Denna handledning är avsedd som en grundläggande introduktion till Sessioner, och att använda databaser i PHP. Även om slutresultatet av denna handledning kanske inte omedelbart verkar användbart för dig, kommer de färdigheter du får från denna handledning dig att fortsätta att skapa ett eget medlemsskapssystem; passar dina egna behov.
Innan du börjar denna handledning, se till att du har följande uppgifter:
Om du inte har denna information ska din webbleverantör kunna tillhandahålla detta till dig.
Nu när vi har formaliteter ur vägen, låt oss komma igång på handledningen!
Som anges i introduktionen behöver du en databas för att fortsätta förbi denna punkt i handledningen. Till att börja med ska vi göra en tabell i denna databas för att lagra vår användarinformation.
Tabellen som vi behöver lagrar vår användarinformation; För vårt ändamål använder vi en enkel tabell, men det är lätt att lagra mer information i extra kolumner om det är vad du behöver. I vårt system behöver vi följande fyra kolumner:
I databasvillkor, a Primärnyckel är fältet som unikt identifierar raden. I detta fall, Användar ID
kommer att vara vår primära nyckel. Eftersom vi vill öka detta varje gång en användare registrerar, använder vi det speciella MySQL-alternativet - AUTO_INCREMENT
.
SQL-frågan för att skapa vårt bord ingår nedan och brukar köras i fliken "SQL" i phpMyAdmin.
CREATE TABLE "användare" ("UserID" INT (25) INTE NULL AUTO_INCREMENT PRIMÄR NYCKEL, 'Användarnamn' VARCHAR (65) INTE NULL, 'Lösenord' VARCHAR (32) INTE NULL, 'EmailAddress' VARCHAR (255) INTE NULL);
För att förenkla skapandet av vårt projekt ska vi skapa en basfil som vi kan inkludera i varje fil vi skapar. Den här filen innehåller information om databasanslutning, tillsammans med vissa konfigurationsvariabler som hjälper oss ut på vägen.
Börja med att skapa en ny fil: base.php
, och skriv in följande kod:
Låt oss ta en titt på några av dessa linjer ska vi? Det finns några funktioner här som vi har använt och ännu inte förklarat, så låt oss ta en titt genom dem snabbt och ge dem mening - om du redan förstår grunderna i PHP kanske du vill hoppa över den här förklaringen.
session_start ();
Den här funktionen startar en session för den nya användaren och senare i denna handledning lagras informationen i den här sessionen för att vi ska kunna känna igen användare som redan har loggat in. Om en session redan har skapats kommer denna funktion att känna igen det och bära den sessionen över till nästa sida.
mysql_connect ($ dbhost, $ dbuser, $ dbpass) eller dö ("MySQL Error:". mysql_error ()); mysql_select_db ($ dbname) eller dö ("MySQL Error:". mysql_error ());
Var och en av dessa funktioner utför en separat men länkad uppgift. De mysql_connect
funktionen kopplar vårt skript till databasservern med hjälp av den information vi gav den ovan, och mysql_select_db
funktion väljer sedan vilken databas som ska användas med manuset. Om någon av funktionerna inte klarar, fyller dö
funktionen kommer automatiskt att gå in och stoppa manuset från bearbetning - vilket innebär att alla användare får meddelandet att det var ett MySQL-fel.
Det viktigaste föremålet på vår sida är den första raden av PHP; den här raden kommer att innehålla filen som vi skapade ovan (base.php), och kommer i huvudsak att ge oss tillgång till allt från den filen i vår nuvarande fil. Vi gör detta med följande rad av PHP-kod. Skapa en fil med namnet index.php
, och placera den här koden längst upp.
Det första vi ska göra för framsidan är att skapa en sida där användarna kan skriva in sina uppgifter för att logga in, eller om de redan är inloggade på en sida där de kan välja vad de vill göra. I denna handledning antar jag att användarna har grundläggande kunskaper om hur HTML / CSS fungerar, och kommer därför inte att förklara denna kod i detalj. för tillfället kommer dessa element att vara un-styled, men vi kommer att kunna ändra det senare när vi skapar vårt CSS-stilark.
Använda filen som vi just har skapat (index.php
), ange följande HTML-kod under den linje i PHP som vi redan har skapat.
Användarhanteringssystem (Tom Cameron for NetTuts) Vad ska vi visa dem?
Innan vi skriver ut resten av sidan har vi några frågor att fråga oss själva:
- Är användaren redan inloggad?
- Ja - vi måste visa dem en sida med alternativ för dem att välja.
- Nej - vi fortsätter på nästa fråga.
Har användaren redan skickat in sina inloggningsuppgifter?
- Ja - vi måste kolla deras detaljer, och om det är korrekt loggar vi dem in på webbplatsen.
- Nej - vi fortsätter på nästa fråga.
Om båda ovanstående besvarades Nej, Vi kan nu anta att vi måste visa ett inloggningsformulär till användaren. Dessa frågor är faktiskt samma frågor som vi ska genomföra i vår PHP-kod. Vi ska göra detta i form av
om uttalanden
. Utan att ange något i någon av dina nya filer, kan vi titta på den logik som vi ska använda först.Ser förvirrande, eller hur? Låt oss dela upp det i mindre sektioner och gå över dem en i taget.
om ! tomt ($ _ SESSION ['LoggedIn']) &&! tomt ($ _ SESSION ['Användarnamn'])) // låt användaren komma åt huvudsidanNär en användare loggar in på vår webbplats kommer vi att lagra sin information i en session - när som helst efter det kan vi få tillgång till den informationen i en speciell global PHP-array -
$ _SESSION
. Vi användertömma
funktion för att kontrollera om variabeln är tom, med operatören!
framför det. Därför säger vi:Om variabeln $ _SESSION ['LoggedIn'] inte är tom och $ _SESSION ['Användarnamn'] inte är tomt, kör den här koden.
Nästa rad fungerar på samma sätt, bara den här gången med hjälp av
$ _POST
global array. Denna grupp innehåller alla data som skickades från inloggningsformuläret som vi kommer att skapa senare i den här handledningen. Slutlinjen utförs endast om ingen av de tidigare uttalandena är uppfyllda. I det här fallet kommer vi att visa användaren ett inloggningsformulär.Så nu, när vi förstår logiken, låt oss få lite innehåll mellan dessa avsnitt. I din
index.php
fil, ange följande nedan vad du redan har.Medlemsområde
=$_SESSION['Username']?> och din e-postadress är =$_SESSION['EmailAddress']?>
. Framgång"echo"Vi vidarebefordrar dig nu till medlemsområdet.
"echo""; annars echo"Fel
"echo"Tyvärr, ditt konto kunde inte hittas. Vänligen klicka här för att försöka igen.
"; annat ?>Logga in
Tack för besöket! Vänligen logga in nedan, eller klicka här för att registrera dig.
Förhoppningsvis kommer de första och sista kodblocken inte att förvirra dig för mycket. Vad vi verkligen behöver fastna i nu är vad ni alla har kommit till denna handledning för - PHP-koden. Nu går vi igenom den andra sektionen en rad i taget, och jag ska förklara vad varje bit kod här är avsedd för.
$ username = mysql_real_escape_string ($ _ POST ['användarnamn']); $ password = md5 (mysql_real_escape_string ($ _ POST ['lösenord']));
Det finns två funktioner som behöver förklaras för detta. för det första, mysql_real_escape_string
- En mycket användbar funktion för att rengöra databasinmatning. Det är inte en felsäker åtgärd, men det kommer att hålla ut de flesta skadliga hackarna där ute genom att avlägsna oönskade delar av det som har lagts in i vårt inloggningsformulär. För det andra, md5
. Det skulle vara omöjligt att gå in i detalj här, men den här funktionen krypterar helt enkelt vad som passeras till det - i detta fall användarens lösenord - för att förhindra att nysgoda ögon läser det.
$ checklogin = mysql_query ("VÄLJ * FRÅN användare WHERE Användarnamn = '". $ användarnamn. "' OCH Lösenord = '". $ lösenord. "'"); om (mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ row ['EmailAddress']; $ _SESSION ['Användarnamn'] = $ användarnamn; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;
Här har vi kärnan i vår inloggningskod; För det första kör vi en fråga i vår databas. I denna fråga söker vi efter allt som rör en medlem, vars användarnamn och lösenord matchar värdena hos vår $ username
och $ lösenord
som användaren har tillhandahållit. På nästa rad har vi ett if-meddelande där vi kontrollerar hur många resultat vi har fått - om det inte finns några resultat, behandlas det här avsnittet inte. Men om det finns ett resultat vet vi att användaren existerar, och så ska vi logga in dem.
De två följande raderna är att få användarens e-postadress. Vi har redan den här informationen från den fråga som vi redan har kört, så vi kan enkelt få tillgång till den här informationen. Först får vi en uppsättning data som har hämtats från databasen - i det här fallet använder vi PHP-funktionen mysql_fetch_array
. Jag har sedan tilldelat värdet av E-postadress
fält till en variabel för att vi ska använda senare.
Nu sätter vi upp sessionen. Vi lagrar användarens användarnamn och e-postadress i sessionen, tillsammans med ett speciellt värde för oss att veta att de har loggats in med det här formuläret. Efter detta är allt sagt och gjort, kommer de sedan att omdirigeras till medlemsområdet med META REFRESH i koden.
Så, hur ser vårt projekt för närvarande ut till en användare?
Bra! Det är dags att gå vidare nu för att se till att människor faktiskt kan komma in på din webbplats.
Det är bra och bra att ha ett inloggningsformulär på din sida, men nu måste vi låta användaren kunna använda det - vi måste skapa ett inloggningsformulär. Gör en fil som heter register.php
och sätt in följande kod i den.
Användarhanteringssystem (Tom Cameron for NetTuts) Fel"echo"Förlåt, det användarnamnet är upptaget. Vänligen gå tillbaka och försök igen.
"; else $ registerquery = mysql_query (" INSERT INTO users (Användarnamn, Lösenord, EmailAddress) VALUES ('". $ användarnamn."', '". $ lösenord."', '". $ email."') "); om ($ registerquery) echo"Framgång
"echo"Ditt konto har skapats. Vänligen klicka här för att logga in.
"; annars echo"Fel
"echo"Tyvärr, din registrering misslyckades. Vänligen gå tillbaka och försök igen.
"; else ?>Registrera
Vänligen ange dina uppgifter nedan för att registrera dig.