Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poziom dostępu
Forum PHP.pl > Forum > PHP
chfast
Witam.
Chciałbym się dowiedzieć jak rozwiązujecie sprawę poziomu dostępu (może to w ogóle ma inną nazwę...) przy skryptach logowania. Czyli czy tworzycie np. 3 poziomy (user, moderator, administrator) czy może tworzycie flagi binarne... Zastanawiam się jak to rozwiązać i czekam na propozycje. Będe wdzięczny wszelkie uwagi.
scanner
Cytat
Zastanawiam się jak to rozwiązać i czekam na propozycje.
Mam propozycję, abyś zastanawiał się nad tym przy szklaneczce czegoś zimnego.

Jak dla mnie wszystko zalezy od tego, ilu użytkowników będzie, i jak dużo sekcji będzie "oprofilowanych". System który teraz buduję (skrypt logowania dałem do oceny tutaj) będzie się prawdopodobnie opierał zarówno na drabince hierarchii jak i tez na czyms w rodzaju np. "moderacja postów [tak/nie]".

http://forum.php.pl/viewtopic.php?t=1608 moze to pomoze (Seth - przepraszam za taka forme nie chcialem juz nabijac ilosci postow)
kicaj
...ja zrobilem ostatnio system logowania wlasnie z podobnymi prawami.
Admin ma w bazie przydzielony nr 1 lub 2 czyli jest adminem, 3 - moderator, a 0 zwykly user, i rozwiazuje mniejwecej to tak:
Kod
if($i == 0) {

echo user;

} elseif($i == 1) {

echo admin1;

} elseif($i == 2) {

echo admin2;

} elseif($i == 3) {

echo moderator;

}

no i zawsze admin moze robic to co moderator
Jesli kogos to zainteresowalo to: http://m-cz.net/test [ okres testowania ]
scanner
[php:1:fe0a24316b]<?php
/*
pseudokod

poziomy dostępu:
0 - Webamaster - może wszystko
1 - Administrator - może mniej - np. nie może zablokowac konta "0"
2 - Moderator - nie może kasować, blokowac żadnyuch kont, jedynie edytować/kasować posty
3 - zwykły user.
*/
define('wymagany', 1) // przykladowo

$status = pobierz_status_z_bazy($user_id);
if($status =< wymagany){
echo 'Dostęp przyznany';
} else {
echo 'Dostęp zabroniony';
}
?>[/php:1:fe0a24316b]

Chyba nie trzeba wyjaśniać?
kicaj_:
[php:1:fe0a24316b]<?php
switch($i){
case '0':
echo 'user';
break;
case '1':
echo 'admin1';
break;
case '2':
echo 'admin2';
break;
case '3':
echo 'moderator';
break;
}
?>[/php:1:fe0a24316b]
Chyba, że masz inne warunki niż "X == Y". Wtedy if(). Wydaje mi się, że switch() jest czytelniejsze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.