Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]$_SESSION - dostęp dla dwóch użytkowników
Forum PHP.pl > Forum > Przedszkole
ReBeLs513
Bawię się od kilku dni próbując zrobić stronę dostępną dla wybranych użytkowników...
  1. <?php
  2. if($_SESSION['zalogowany'] !== usera || userb){
  3. echo('Nie jestes uprawniony do ogladania tej strony !');}
  4. else {
  5. ?>
  6. Treść strony...
  7. <?php
  8. }
  9. ?>

i coś mi nie wychodzi ;// w/w skrypt działa tylko, kiedy dam jednego usera
Elber
Cytat(ReBeLs513 @ 31.01.2012, 11:00:59 ) *
Bawię się od kilku dni próbując zrobić stronę dostępną dla wybranych użytkowników...
  1. <?php
  2. if($_SESSION['zalogowany'] !== usera || userb){
  3. echo('Nie jestes uprawniony do ogladania tej strony !');}
  4. else {
  5. ?>
  6. Treść strony...
  7. <?php
  8. }
  9. ?>

i coś mi nie wychodzi ;// w/w skrypt działa tylko, kiedy dam jednego usera


if($_SESSION['zalogowany'] != 'usera' || $_SESSION['zalogowany'] != 'userb'){
...
}
rocktech.pl
Witam.

Do poczytania.
strife
Po pierwsze `usera` i `userb` to w tej chwili są stałe. Powinieneś mieć błąd (włącz raportowanie błędów, czytaj linki w mojej stopce).

Do tego widzę, że trochę błędnie zacząłeś tworzyć ten warunek - jak się tworzy warunki poczytasz tutaj: http://php.net/manual/en/control-structures.if.php
ReBeLs513
hmm Jak jest się zalogowanym to raportowanie błedów mówi
"Notice: A session had already been started - ignoring session_start() in F:\www\strefa-A\index.php on line 35"
A jak nie, to dorzuca "Notice: Undefined index: zalogowany in F:\www\strefa-A\index.php on line 36"
nospor
Czytasz w ogole te komunikaty czy tylko kopiujesz i nam bezmyslnie pokazujesz??
Pierwszy chyba wyraźnie mówi, że próbuje po raz drugi wywołać session_start :/

Drugi zas mowi, ze sie odwolujesz do indeksu, ktory nie istnieje. WYpadaloby wiec najpierw sprawdzic, czy on istnieje poprzez isset()
strife
No więc jeszcze raz, poszukaj co znaczy błąd o nieokreślonym index'ie. W PHP jak i wielu innych językach, zmienne musisz deklarować. W tej chwili drugi błąd mówi o tym, że klucz tablicy "zalogowany" nie istnieje.

Stwórz prosty przykład:

  1. echo $_SESSION['zalogowany'];

Będziesz miał ten sam błąd, aby tego uniknąć ważne jest aby sprawdzać czy dany klucz istnieje, przed odwołaniem się do niego np.:

  1. if (isset($_SESSION['zalogowany'])) {
  2. echo $_SESSION['zalogowany'];
  3. }


Widzisz różnicę? Dodam, że to o czym teraz piszę zostało już poruszone w pierwszym temacie w mojej stopce!

Dalej, jak autoryzujesz użytkownika? Domyślam, się że robisz to za pomocą ustawienia sesji. Czy jesteś pewien czy, aby na pewno to działa?
ReBeLs513
noo to ja wiem co znaczy drugi komunikat (skoro się wylogowałem to trudno aby zmienna $zalogowany istniała) ale nie kminie pierwszego, bo kiedyś czytałem, że aby tg uniknąć, trzeba dodać
  1. <?php
  2. ?>
i
  1. <?php
  2. ?>
odpowiednio na początku i końcu strony...

Ok po klikunastu minutach pousuwalem wszystkie session_start i dodalem ją raz na samej gorze strony. jednak @elber nadal tylko 1 uzytkownik dziala a przy dodaniu kolejnego jest tak, jakby nikt sie nie zalogowal.
ten skrypt pokazania wszytkich bledow nic juz nie pokazuje, wiec chyba wszystko git ?
Jak autoryzuje uzytkownika ? musi istniec sesja zalogowany, a aby istniała to logowanie jest na plikach z hashowanymi haslami ;p moze nie jest to bezpieczne ale mi wystarczy.
nospor
Cytat
. jednak @elber nadal tylko 1 uzytkownik dziala a przy dodaniu kolejnego jest tak, jakby nikt sie nie zalogowal.

Nie || a &&
  1. if($_SESSION['zalogowany'] != 'usera' && $_SESSION['zalogowany'] != 'userb'){
  2. echo('Nie jestes uprawniony do ogladania tej strony !');
  3. }
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.