Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem ze zmienna $status
Forum PHP.pl > Forum > Przedszkole
if_error
Witam - mam problem ze zmienną $status. Kończe robić własnego CMS'ka i chciałem aby dostęp do niego mieli: admin - status a, uzytkownik - status u, uzytkownik testowy - status t.

tabela:
  1. CREATE TABLE `administrator` (
  2. `id_administrator` int(5) NOT NULL AUTO_INCREMENT,
  3. `imie` mediumtext NOT NULL,
  4. `nazwisko` mediumtext NOT NULL,
  5. `user` varchar(15) NOT NULL,
  6. `password` varchar(32) NOT NULL,
  7. `email` varchar(30) NOT NULL,
  8. `status` varchar(10) NOT NULL,
  9. PRIMARY KEY (`id_administrator`)
  10. );


logując się w palu:
  1. <?php
  2. ...
  3. $_SESSION['LOGGED'] = "TRUE";
  4. $_SESSION['user']=$wiersz['user'];
  5. $_SESSION['imie']=$wiersz['imie'];
  6. $_SESSION['nazwisko']=$wiersz['nazwisko'];
  7. $_SESSION['status']=$wiersz['status'];
  8. ...
  9. ?>


i teraz po zalogowaniu chciałem zrobić aby: administrator miał dostęp rzecz jasna do wszystkiego, uzytkownik juz miał ograniczone prawa natomiast uzytkownik testowy aby mógł tylko przeglądać np. newsy itp. bez możliwości edycji czegokolwiek.

Na początku ustawiłem sobie sprawdzenie:
  1. <?php if ($status == 't' ) {
  2. echo'Nie masz uprawnień do przeglądania tej strony !';
  3. } else {
  4. ?>
  5.  
  6. ... właściwa strona
  7.  
  8. <?php } ?>


i problem polega na tym iż testując stronę na Krasnalu wszystko działa i uzytkownikowi testowemu zostaje ograniczony dostęp, natomiast po wraniu stronki na serwer - przepuszcza go i ma on dostęp do wszystkiego.

Coś powaliłem questionmark.gif
JaRoPHP
Cytat(if_error @ 30.06.2007, 11:45:10 ) *
i problem polega na tym iż testując stronę na Krasnalu wszystko działa i uzytkownikowi testowemu zostaje ograniczony dostęp, natomiast po wraniu stronki na serwer - przepuszcza go i ma on dostęp do wszystkiego...
Podejrzewam, że ustawienia Krasnala mają włączone register_globals, stąd ten problem.

Skąd masz zmienna $status? Spróbuj tak:
  1. <?php
  2. $status = $_SESSION['status'];
  3. if ($status == 't' ) {
  4.  echo'Nie masz uprawnień do przeglądania tej strony !';
  5. } else {
  6.  // ...
  7. }
  8. ?>


-- EDIT--
Nie musisz krzyczeć...
Ten bold jest całkowicie zbyteczny.
Cysiaczek
Dyrektywa register_globals w php.ini
Na Krasnalu masz zapewne wartośc On, więc wszytskie zmienne sesyjne oraz przesłane metoda GET i POST sa traktowane jako zmienne globalne. Na normalnych, produkcyjnych serwerach jest wartośc OFF, więc dostęp masz poprzez $_SESSION['status'].

Jeśli pisałeś większy kod używając globali... to sam jesteś sobie winny.

Pozdrawiam.
if_error
no i jedna linijka więcej i działa winksmiley.jpg jestem początkujący więc musze się jeszcze wieleeee nauczyc winksmiley.jpg

dzieki śliczne !
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.