Jump to content
php.lv forumi

Lietotāju pakāpes


iall

Recommended Posts

Nu pavisam vienkārš variants:

Reģistrējoties automātiski ieliec lietotāju par user (0), bet ja vajag pēc tam datubāzē ieliec 1 (pieņemsim, ka šitais ir mods), 2 (pieņemsim, ka šitais ir admins) un tā tālāk grupu.

 

Pēc tam mājaslapā, kad lietotājs piesakās mājaslapā, sesijā (group) uzstādi viņa lietotājgrupu, kuru tu izvelc no datubāzes.

Un tad jau mājaslapā viss skaidrs:

 

if($_SESSION['group']==0) {
echo "Sveiks, lietotāj. <br />Tavs Profils<br />Forums";
}
if($_SESSION['group']==1) {
echo "Sveiks, moderator.<br />Pārskatīt ierakstus<br />Rediģēt ierakstus<br />";
}
if($_SESSION['group']==2) {
echo "Sveiks, administrator. <br />Kontroles Panelis<br />Lietotāju rediģēšana";
}

 

Tas ir, ja katrai grupai vēlies savādāks. Vari arī savienot un ņemties kā vien gribi:

if($_SESSION['group']==0 || $_SESSION['group']==1) {
echo "Sveiks, lietotāj. <br />Tavs Profils<br />Forums";
} 
if($_SESSION['group']==2) {
echo "Sveiks, administrator. <br />Kontroles Panelis<br />Lietotāju rediģēšana";
}

 

Vienkārš variants, bet nodomāju ierakstīt. Cik tāds vispār ir drošs, ja tā padomā?

 

 

Tieši sito mekleeju. bet es vinu ielieku savaa majas lapa kad ielogojas tad paradas izvelne profila un tur arii ieliku otro kodu. bet man radas šāds erors :

 

 

Notice: Undefined index: group in C:\AppServ\www\6v\index.php on line 187
Sveiks, lietotāj.
Tavs Profils
Forums
Notice: Undefined index: group in C:\AppServ\www\6v\index.php on line 190

 

Un kas jataisa datubaaze group vai kkas taads?

Link to comment
Share on other sites

Ja augstākiem leveliem ir atļautas tās pašas darbības,kuras tekošajam,tad,lai nav katram atsevišķi if($_SESSION['group']== jāčeko,tad dažās vietās var racionālāk to organizēt,rakstot

if($_SESSION['group']>=$vajadzigais_level)

Tad visiem sākot no šī līmeņa līdz pat adminam tajā vietā būs pieeja automātiski.

Par to $_SESSION['group'] - vai tad drošāk un ērtāk nav to level ciparu nolasīt pie reizes kopā ar pārējiem usera datiem,nodefinēt kā konstanti(kā Aleksejs ieteica) un nemaz sesijā viņu nelikt? Tāpat lapu izsaucot būs kaut kāds autorizācijas scenārijs,kur to levelu mierīgi var nočekot un tālāk jau kā konstanti izmantot pārbaudēs.

Link to comment
Share on other sites

  • 9 months later...

Lietotāja līmenis tiek glabāts DB. Kad lietotājs tiek autentificēts, tad līmeni var glabāt kā sesijas mainīgo.

Ja ļoti negribas izmantot sesijas, tad var katru reizi raustīt DB (atkarībā no tā, kāda datu bāze tiek izmantota, nav nepieņemams variants), vai arī glabāt pie lietotāja, bet tad šie dati paši par sevi ir kaut kādā veidā jāautentificē jāaizsargā pret patvalīgu izmaiņu veikšanu.

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...