Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie $_sessions z obsługą na poziomie użytkownika
slid3r
post 19.11.2022, 15:23:16
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.12.2021

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


Witam,

mam skrypt :
  1. <?php
  2. if ($user_level == 1) {
  3.  
  4. echo '</br>tekst</br>';
  5.  
  6. }
  7.  
  8. ?>


i kilka poziomów użytkownika 1,2,3,4,5

Jak można wyświetlić zawartość dla poziomów 1,3,5 ? np:

  1. if ($user_level == 1,3,5)

Go to the top of the page
+Quote Post
viking
post 19.11.2022, 15:47:58
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Zwykły or albo funkcja in_array


--------------------
Go to the top of the page
+Quote Post
Salvation
post 19.11.2022, 16:45:09
Post #3





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Cytat(slid3r @ 19.11.2022, 15:23:16 ) *
Jak można wyświetlić zawartość dla poziomów 1,3,5 ? np:

  1. if (in_array($userLevel, [1,3,5], true)) {
  2. // użytkownik ma wymagany poziom uprawienień
  3. }


Dokumentacja do poczytania: https://www.php.net/manual/en/function.in-array.php

Ten post edytował Salvation 19.11.2022, 16:46:51
Go to the top of the page
+Quote Post
slid3r
post 20.11.2022, 12:30:12
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.12.2021

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


Dziękuję za pomoc.
Czyli z tego co rozumiem powinno to wyglądać tak :

  1.  
  2. <?php
  3.  
  4. if (in_array($user_level, [1,3,5], false)) {
  5.  
  6. echo '</br>tekst</br>';
  7.  
  8. }
  9.  
  10. ?>
  11.  
  12.  


wtedy 1,3,5 widzi echo '</br>tekst</br>'; pozostałe poziomy nie.
Czy dobrze zrozumiałem ?


Go to the top of the page
+Quote Post
Salvation
post 20.11.2022, 15:03:32
Post #5





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Cytat(slid3r @ 20.11.2022, 12:30:12 ) *
wtedy 1,3,5 widzi echo '</br>tekst</br>'; pozostałe poziomy nie.
Czy dobrze zrozumiałem ?

Tak, tylko dlaczego zmieniłeś flagę (3-co parametr) w funkcji in_array()? Zmienna `$user_level` jest stringiem?
Go to the top of the page
+Quote Post
slid3r
post 20.11.2022, 16:04:37
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.12.2021

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


Chwilowo to liczby potem zmienię na jakiś ciąg znaków dla bezpieczeństwa np 1a,2b,3c,4d,5d.... Z opcją true nie wyświetlał echa.
Go to the top of the page
+Quote Post
Salvation
post 20.11.2022, 22:44:30
Post #7





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Cytat(slid3r @ 20.11.2022, 16:04:37 ) *
Z opcją true nie wyświetlał echa.

OK, czyli zmienna jest stringiem. To pamiętaj, żeby jednak mieć `true` na ostatniej pozycji.
`false`, to porównanie w ten sposób ==
`true`, to tak jakie powinno być, czyli ===

Masz to dokumentacji.
Go to the top of the page
+Quote Post
slid3r
post 21.11.2022, 07:14:06
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.12.2021

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


Cześć ponownie i dzięki za reakcje.

Czytając dokumentację rozumiem że kasując false z automatu przechodzi na true, chyba że żle to ogarniam?
czyli kod powinien wyglądać tak :

  1.  
  2. <?php
  3.  
  4. if (in_array($user_level, [1,3,5])) {
  5.  
  6. echo '</br>tekst</br>';
  7.  
  8. }
  9.  
  10. ?>
  11.  


a jak powinien wyglądać z === ?

  1.  
  2. <?php
  3.  
  4. if (in_array($user_level, [1,3,5], true)) {
  5.  
  6. echo '</br>tekst</br>';
  7.  
  8. }
  9.  
  10. ?>
  11.  


i echo pojawi się jak zmienię z 1 na 1aaaa ? to może natychmiast to zmienię biggrin.gif bo mogę zapomnieć.



Ogarnąłem smile.gifsmile.gif Dziękuję za pomoc =)

  1.  
  2. <?php
  3.  
  4. if (in_array($user_level, ['1a', '2a', '3a', '4a', '5a'], true)) {
  5.  
  6.  
  7. echo '<br>tekst<br>';
  8.  
  9.  
  10. }
  11.  
  12. ?>
  13.  
  14.  


Ogarnąłem smile.gifsmile.gif Dziękuję za pomoc =)

Ten post edytował slid3r 21.11.2022, 07:52:59
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 07:20