Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wydajność zapytania, Sesja czy przypisanie?
indexx
post 26.01.2010, 17:12:09
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 20.06.2008

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


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.  


Ten post edytował indexx 26.01.2010, 17:12:46
Go to the top of the page
+Quote Post
Ulysess
post 26.01.2010, 17:16:44
Post #2





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


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.  


?
Go to the top of the page
+Quote Post
b4x
post 26.01.2010, 19:16:01
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


  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


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 26.01.2010, 20:53:16
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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


Ten post edytował sadistic_son 26.01.2010, 20:55:54


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
indexx
post 26.01.2010, 20:56:47
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 20.06.2008

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


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.
Go to the top of the page
+Quote Post
sadistic_son
post 26.01.2010, 21:03:02
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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. }


Ten post edytował sadistic_son 26.01.2010, 21:03:42


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Quantum
post 26.01.2010, 21:07:42
Post #7





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


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. }


Ten post edytował sniffer32 26.01.2010, 21:10:45
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: 10.07.2025 - 04:45