Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wydajność zapytania
Forum PHP.pl > Forum > Przedszkole
indexx
Mam pytanie dotyczące wydajności kodu, otóż w kilku miejscach mam treści dostępne tylko dla zalogowanych użytkowników i tutaj moje pytanie, jakiej konstrukcji użyć?
Pierwsza:
W każdym wywołaniu używać:
  1. if($_SESSION['zalogowany']!='tak'){
  2. echo "zaloguj się";
  3. } else {
  4. echo "treść dla zalogowanych";
  5. }
  6.  


Druga
Czy lepiej na początku pliku przypisać do zmiennej $zalogowany='$_SESSION['zalogowany']' i do niej się odwoływać?

  1. if($zalogowany!='tak'){
  2. echo "zaloguj się";
  3. } else {
  4. echo "treść dla zalogowanych";
  5. }
  6.  
Ulysess
hmm a nie lepiej przy zalogowaniu do zmiennej sesyjnej dać wartość 1 i na pod stronach sprawdzasz

  1.  
  2. if($_SESSION['login'] == 1)
  3. {
  4. echo 'tresc dla zalogowanych';
  5. }
  6. else {echo 'zaloguj sie';}
  7.  
  8.  


?
b4x
  1. <?php
  2.  
  3. // Ustaw TRUE na zalogowany - dla przykładu
  4. $_SESSION['zalogowany'] = TRUE;
  5.  
  6. if($_SESSION['zalogowany'] === TRUE)
  7. {
  8. echo 'Witaj, jesteś zalogowany!';
  9. }
  10. else
  11. {
  12. echo 'Proszę zalogować się!';
  13. }
  14.  
  15. ?>


To będzie wydajniejsze wg. mnie smile.gif
sadistic_son
Autorowi raczej nie chodzilo o to czy wartosc sesji ma byc rowna tak, 1 czy true tylko czy odwolywac sie bezposrednio do zmiennej gloalnej $_SESSION czy do zmiennej ktorej przypisze sie wartosc sesji. Moim zdaniem nie zrobi to zadnej roznicy.
Jesli chodzi o ten drugi przypadek to zmienna zalogowany powinna wygladac tak:
  1. $zalogowany=$_SESSION['zalogowany'];
  2. // A nie tak:
  3. $zalogowany='$_SESSION['zalogowany']'; // bo to zwroci blad
indexx
Cytat(sadistic_son @ 26.01.2010, 20:53:16 ) *
Autorowi raczej nie chodzilo o to czy wartosc sesji ma byc rowna tak, 1 czy true tylko czy odwolywac sie bezposrednio do zmiennej gloalnej $_SESSION czy do zmiennej ktorej przypisze sie wartosc sesji. Moim zdaniem nie zrobi to zadnej roznicy.


Właśnie o to mi chodziło, ale sprawdzę również, czy zmiana z tak na 1 przyniesie jakiś efekt.
Dzięki za odp.
sadistic_son
Cytat(indexx @ 26.01.2010, 20:56:47 ) *
.... sprawdzę również, czy zmiana z tak na 1 przyniesie jakiś efekt.
W takim przypadku najlepiej sesji przypisac wartosc TRUE i przy sprawdzeniu czy user jest zalogowany uzyc isset. Czyli w praktyce tak:
  1. //logowanie
  2. $_SESSION['zalogowany']=true;
  3.  
  4.  
  5. //sprawdzenie czy zalogowany
  6. if(!isset($_SESSION['zalogowany'])){
  7. echo "zaloguj się";
  8. } else {
  9. echo "treść dla zalogowanych";
  10. }
Quantum
alternatywny sposób :

  1. define('is_logged', array_key_exists('zalogowany', $_SESSION));


a później sprawdzasz :

  1. if (is_logged)
  2. {
  3. //dalsze instrukcje
  4. }
  5. else
  6. {
  7. //zaloguj się
  8. }
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.