Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie $_sessions z obsługą na poziomie użytkownika
Forum PHP.pl > Forum > Przedszkole
slid3r
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)

viking
Zwykły or albo funkcja in_array
Salvation
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
slid3r
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 ?


Salvation
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?
slid3r
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.
Salvation
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.
slid3r
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 =)
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.