Ladda användarspecifik data

PHPportalen Forum Index » Diskutera webbutveckling
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
qulle



Medlem i: 1155 dagar

Status: Offline



#740227
Inlägg Skrivet: 2016-01-06 18:51      Ämne: Ladda användarspecifik data Citera

Skulle behöva lite tips på hur man laddar in användarspecifik data!

Ex. när en person har logga in på sidan omdirigeras personen till

home.php

beroende på om detta är en vanlig användare eller om det är en administratör skall olika "boxar" visas/laddas in.

hur laddar man på ett bra sätt in dessa "boxar" på ett bra sätt ?

PHP SQL/MySQL

//Qulle
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Extreem_



Medlem i: 4565 dagar

Status: Offline



#740228
Inlägg Skrivet: 2016-01-06 19:04      Ämne: Citera

Hur hanterar du inloggning? Kollar du användarnamn och lösenord mot en databas? Isåfall kan det vara en bra idé att även spara "level" i databasen för att ange vilken behörighet en viss användare har.

När inloggningen är klar och du sätter någon sorts session med användar_id eller liknande, skulle du också kunna sätta en session med behörighet.

På sidan home kan du antingen kolla på sessionen är satt och vilken behörighet som tilldelats vid inloggning, eller slå upp mot databas och kolla "level" för användaren med det id du har i sessionen.

Dvs berätta lite mer om hur inloggningen går till. Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
qulle



Medlem i: 1155 dagar

Status: Offline



#740232
Inlägg Skrivet: 2016-01-06 22:17      Ämne: Citera

Inloggningen sker med en uppslagning mot databas!

Om inloggningen går bra sätts användarnamnet för den inloggade användaren i en session och man omdirigeras till home.php

$_SESSION['login_user'] = $username;

-------------------------------------------------------------------

sedan finns denna kod på home.php sidan
(obs, egentligen jämförs session mot ett md5 värde!)

if ($_SESSION['login_user'] == "admin_user") {
include "inloggad_admin.php";
} elseif($_SESSION['login_user'] == "normal_user") {
include "inloggad_medlem.php";
}


Vad jag försöker åstadkomma med koden är att kunna ladda unikt innehåll för varje användare !

Känns lite "fel" att bygga på detta sättet! If-satsen/select case, blir ju enorm om jag skulle utöka antalet användare!

är det nu jag ska kolla på get data ? att slå upp mot en databas vilket innehåll som skall laddas beroende på användarnamnet / behörighetsnivån ??
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Extreem_



Medlem i: 4565 dagar

Status: Offline



#740233
Inlägg Skrivet: 2016-01-06 22:50      Ämne: Citera

Här kommer två förslag:

1. Lagra behörighet i databas
Lägg till ett fält i databas för användare, kalla det tex access.
Om 1 då är användare admin, om 0 vanlig användare.

När du sätter session för användarnamn, sätt också en session för behörighet:

KOD:
1:
$_SESSION['login_user'] = $username;
2:
$_SESSION['access'] = $access;


Sen i din kod där du behöver använda access:
KOD:
1:
if ($_SESSION['access'] == 1) {
2:
   echo "Du är admin!";
3:
} else {
4:
  echo "Välkommen vanliga användare!";
5:
}


Tänk på att om du använder en include-fil så som du listat i ditt exempel, så skulle en användare kunna komma åt den direkt via url. Därför bör denna ev includefil innehålla typ:

inloggad_admin.php:
KOD:
1:
if ($_SESSION['access'] != 1) {
2:
   //Användaren försöker komma åt admin-filen men är inte admin, skicka till startsidan.
3:
   header('Location: index.php');
4:
   break;
5:
}


För att inte användare ska kunna titta i filen utan rätt behörighet!
Fördelen med att ha en session för access är att du enkelt kan komma åt den informationen, utan att kolla i databasen.

2. Jämföra mot fördefinerade användarnamn
Som du gjort just nu så behöver du inte kolla i databasen, du har helt enkelt gjort så att användarnamn manuellt behöver läggas till. Däremot kanske inte systemet är tänkt att ha så många administratörer? Isåfall kan du köra på som du tänkt och hålla det enkelt! Däremot om du nu gör som du gör så bör du även i includefilen kolla så användarnamnet är en administratör. Dvs du behöver lagra namn för administratörer på två skilda platser vilket inte är så bra.

Lycka till!

Senast ändrad av Extreem_ den 2016-01-09 11:17, ändrad totalt 1 gång
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
qulle



Medlem i: 1155 dagar

Status: Offline



#740236
Inlägg Skrivet: 2016-01-08 20:29      Ämne: Citera

okej, tack för dina tips Smile!
Ska definitivt använda ett accesvärde
$_SESSION['access'] = $access;
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Diskutera webbutveckling
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic