Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Zaszywanie w stronę informacji
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Chciałbym wiedzieć jak można zaszyć w stronę informacje, które są widoczne tylko dla zalogowanych użytkowników lub jakiś inny warunek.

Dla przykładu:
Widok dla zalogowanego
Kod
menu, banner, reklama, aktualnosci, posty, imie

Widok zwykłego uzyszkodnika:
Kod
menu, aktualnosci, posty


Próbowałem zwykłym if($tak == 'tak') ale nie wydaję mi sie to zbyt eleganckie i profesjonalne. Jakieś inne sposoby?
erix
Zależy, co ta zmienna $tak miałaby przechowywać.

Zresztą, to naprawdę zależy od zastosowania; jeśli nie ma szczegółowo podzielonych pól<->uprawnienia, to wystarczy to jak najbardziej. winksmiley.jpg
bemol
przy logowaniu dodaj sobie zmienną sesyjną:
np.
  1. <?php
  2. session_register('zalogowany');
  3. ?>

i później w pliku sprawdź:
  1. <?php
  2. if (isset($_SESSION['zalogowany'])) {
  3. echo 'cale menu';
  4. } else {
  5. echo 'menu dla niezalogowanego';
  6. }
  7. ?>
thomson89
A te uprawnienia? No chodzi mi o to, ze zwykły uzyszkodnik widzi stronę. Ale ja jak sie zalgouję to bym mógł widzieć id plików, edytować, dodawać itp. itd.
erix
Mam na myśli to, że mogą być poziomy użytkowników - np. moderator/admin; pierwszy widzi więcej niż zwykły użytkownik, a mniej niż admin.
thomson89
Uprawnienia również, rozdziela się poprzez zwykłe ify?
Mephistofeles
To ty o tym decydujesz winksmiley.jpg. Co do session_register - jest to rozwiązanie stare, i niestosowane, bo niebezpieczne.
thomson89
Wiem że o tym decyduję, ale znam tylko ify.

A ten session to nowszy sposób?
Mephistofeles
Po prostu już się nie stosuje zmiennych globalnych z register_globals, a co za tym idzie stosowanie session_register, które taką zmienną rejestruje jest niepotrzebne.
K4mil94
Dodaj sobie do bazy z userami pole poziom a w nim np. 1 - admin, 2 - moderator, 3 - user i potem ifem sprawdzasz czy jest zalogowany i zbazy wyciagszasz jaki ma poziom, porownujesz znowu if'em i jak jest admin to pokazujesz to co ma admin smile.gif
nexis
Cytat(bemol @ 21.03.2009, 16:32:09 ) *
  1. <?php
  2. session_register('zalogowany');
  3. ?>

Cytat(Manual)
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
K4mil94
Lepiej wyciagnąć z bazy dane i wstawić w tablice.
  1. <?php
  2. $query = "SELECT * FROM users WHERE nick='$nick';"; //Nick np. przeslany z formularza
  3. $result = mysql_query($query);
  4. $dane=mysql_fetch_array($result);
  5.  
  6. $login = $dane['login'];
  7. $poziom = $dane['poziom'];
  8.  
  9. if($poziom == 1) {
  10. echo "Witaj adminie!";
  11. }
  12. else {
  13. if($poziom == 2) {
  14. echo "Witaj modzie!";
  15. }
  16. else {
  17. if($poziom == 3) {
  18. echo "Witaj userze!";
  19. }
  20. else {
  21. }
  22. }
  23. }
  24. ?>
Oczywiscie to bedzie dzialalo jesli zrobisz tak jak pisalem w poprzednim poscie
erix
A o switch" title="Zobacz w manualu PHP" target="_manual Waść słyszał? Takie if" title="Zobacz w manualu PHP" target="_manualy sprawdzające tę samą zmienną są mniej czytelne...
Fifi209
Cytat(K4mil94 @ 22.03.2009, 07:13:39 ) *
Lepiej wyciagnąć z bazy dane i wstawić w tablice.
  1. <?php
  2. $query = &#092;"SELECT * FROM users WHERE nick='$nick';\"; //Nick np. przeslany z formularza
  3. $result = mysql_query($query);
  4. $dane=mysql_fetch_array($result);
  5.  
  6. $login = $dane['login'];
  7. $poziom = $dane['poziom'];
  8.  
  9. if($poziom == 1) {
  10. echo &#092;"Witaj adminie!\";
  11. }
  12. else {
  13. if($poziom == 2) {
  14. echo &#092;"Witaj modzie!\";
  15. }
  16. else {
  17. if($poziom == 3) {
  18. echo &#092;"Witaj userze!\";
  19. }
  20. else {
  21. }
  22. }
  23. }
  24. ?>
Oczywiscie to bedzie dzialalo jesli zrobisz tak jak pisalem w poprzednim poscie


Zaproś mnie na swoją stronę. Przy takim wstawianiu zmiennych bez uprzedniego filtrowania będzie tam raj .
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.