Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+mysql] Autoruzacja, dostęp do zasobów www
Forum PHP.pl > Forum > Przedszkole
pioch
Witam


Chciałem rozszezyc skrypt logowania o sprawdzanie dostępu ( tzn poziom użytkownika ) a więc :


sprawdzam czy jest zalogowany

  1. <?php
  2.  
  3.  
  4. if ($_SESSION["zalogowany"]=="tak") {
  5.  
  6. // user zalogowany
  7.  
  8. } else {
  9.  
  10. //niezalogowany
  11.  
  12. }
  13.  
  14. ?>


w bazie danych dodałem jeszcze jedna kolumne grupa ( user, admin ) i teraz pytanko :

i jak zrobić bu zalogowany user oraz admin miał inne opcje ( widział inna zawortość strony ) questionmark.gif
webdice
Możesz np przypisać do zmiennej sesyjnej poziom użytkownika i na tej zasadzie wyświetlać treść dla danej grupy.
pioch
Cytat(webdicepl @ 5.04.2007, 20:08:37 ) *
Możesz np przypisać do zmiennej sesyjnej poziom użytkownika i na tej zasadzie wyświetlać treść dla danej grupy.



no własnie nie wiem jak questionmark.gif

możesz podać przykład
kriqs
jak sie juz zaloguje to wczytujesz mu prawa:
  1. <?php
  2. np:
  3. $_SESSION["prawa"] = 'user';
  4. ?>


a potem
ify i jedziesz ale to juz jest zalatwe smile.gif

dziekuje
pioch
no tak ale taka petla mi nie działa nie wiem czemu, wyswietla mi sie zawsze


  1. <?php
  2. if ($_SESSION['grupa'] != 'administrator' ){
  3.  
  4. echo " <a href="adm/index.php">Panel Administracyjny</a> ";
  5.  
  6. }
  7. else
  8. {
  9. echo " ";
  10. }
  11. ?>
strife
Cytat(pioch @ 5.04.2007, 20:50:51 ) *
no tak ale taka petla mi nie działa nie wiem czemu, wyswietla mi sie zawsze
  1. <?php
  2. if ($_SESSION['grupa'] != 'administrator' ){
  3.  
  4. echo " <a href="adm/index.php">Panel Administracyjny</a> ";
  5.  
  6. }
  7. else
  8. {
  9. echo " ";
  10. }
  11. ?>


A masz session_start" title="Zobacz w manualu PHP" target="_manual na początku tego powyższego skryptu, który zamieściłeś? Dodatkowo, żeby się w nieskończoność nie powtarzać, przeczytaj ten temat może do czegoś dojdziesz winksmiley.jpg :

» System logowania i sesje
pioch
Oczywiście ze mam session_start na poczatku każdej strony


Wątek prześledziłem i poprawiłem małe błedy które miałem w logowaniu... ale na moje pytania brak odpowiedzi....


Nie potrafie sprawdzać stopnia ( dostepnosci ) aby userowi i adminowi wyświetlała sie rózna zawartość ...


Chciałbym zablokowac tym niekótre fukncje które moze widzieć admin smile.gif)
erix
Zaraz, panel ma być widoczny dla admina czy innych?
Bo jeśli tylko dla admina, to pomyliłeś ifa, dokładniej: !=.

Przejrzyj sobie operatory w manualu. winksmiley.jpg
webdice
Pisane z palca i na szybko, żeby przedstawić Ci idee problemu:

Kod
MySQL: tabela users

id, name, password, level


  1. <?php
  2. $query = mysql_query ("SELECT * FROM `users` WHERE `id` = '1'");
  3.  
  4. while ($row = mysql_fetch_assoc ($query))
  5. {
  6. if ($row['level'] == 'admin')
  7. {
  8. $_SESSION['level'] = 'admin';
  9. }
  10. else
  11. {
  12. $_SESSION['level'] = 'user';
  13. }
  14. }
  15. ?>


Oczywiście pomijam rozpoczynanie sesji, łączenie się z bazą, sprawdzanie poprawności hasła itp. Mam nadzieje że już wiesz mniej więcej o co w tym chodzi, jeśli nie, pytaj.

P.S. Zróbcie coś z tymi slashami przed cudzysłowami, bo jest to strasznie denerwujące. Zauważyłem że błąd wyskakuje przy stosowaniu "szybkiej edycji".

Pozdrawiam Piotrek
pioch
Dzieki Imienniku tongue.gif


A masz jeszcze takie pytanie , jak połaczyć cześć wspólną za pomocą sesji by daną cześć strony widział i user i administrator questionmark.gif?

Za pomocą AND nie działa :/


próbowalem dać tak

if ($_SESSION['grupa'] == 'administrator' AND $_SESSION['grupa'] == 'user' )
webdice
Jak coś to OR (||), możesz także zrobić tak że dane których nie chcesz pokazywać zwykłemu użytkownikowi wrzucasz do instrukcji

  1. <?php
  2. if ($_SESSION['level'] == 'admin')
  3. {
  4. // treść tylko dla adminisratora
  5. }
  6. ?>


Pozdrawiam.
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.