Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie sesji do obiektu
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Witam. Mam problem. Otóż na jednej stronie użytkownik się loguje. Jeśli się zaloguje poprawnie to $_SESSION['logged'] = 1. Stworzyłem klasę do uploadu plików i chciałem w niej zawrzeć metodę do sprawdzania uprawnień, tzn. czy $_SESSION['logged'] == 1. To właśnie jako parametr przekazuję wartość $_SESSION. Metoda wygląda mniej więcej tak :

  1. public function checkRights($level) {
  2. $this->level = $level;
  3. if ($this->level != 1) return false;
  4. }
  5.  


przekazuję tak :

  1.  
  2. if (!$upload->checkRights($_SESSION['logged'])) echo "nieudane logowanie";
  3.  


I to właśnie nie działa. Wywala mi że nie udało się zalogować, ale wartość wynosi 1. Czemu ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Gdyby nie fakt, że podczas porównywania za pomocą dwóch znaków równości dochodzi do rzutowania typów zmiennych i NULL zamieniane jest na false, to i kod użytkownika skowron-line by zadziałał. Natomiast można porównać dwie zmienne sprawdzając przy okazji zgodność ich typów (używamy do tego trzech znaków równości) i wówczas osiągamy oczekiwany rezultat.
  1. if ($upload->checkRights($_SESSION['logged']) === false) echo "nieudane logowanie";

Jednak skoro funkcja coś zwraca, to i powinna zwracać jakąś domyślną wartość (w tym przypadku true).

EDIT
Ale to tylko taka istotna ciekawostka.

Ten post edytował mortus 18.08.2011, 21:13:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 09:53