Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> teoretyczne pytanie ;)
mrok
post
Post #1





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


Witam

wie ktoś czy
  1. <?php
  2. if ( (isset($_SESSION['isLoged'])) && ($_SESSION['isLoged']==true))
  3. ?>

mozna zastapic samym
  1. <?php
  2. if ($_SESSION['isLoged']==true)
  3. ?>

czy istnieje teoretyczna możliwość ze za $_SESSION['isLoged'] przypisany zostanie losowy ciąg bitów i kiedyś zajdzie ten warunek??


--------------------
Go to the top of the page
+Quote Post
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Cytat
czy istnieje teoretyczna możliwość ze za $_SESSION['isLoged'] przypisany zostanie losowy ciąg bitów i kiedyś zajdzie ten warunek??


Nie. Ale kod może wywalać notice, jeżeli zmienna nie będzie zadeklarowana.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #3





Goście







a jaka wartość przypisana jest do $_SESSION['isLoged'] jeśli jest true? To jest w ogóle chyba błędne:

  1. <?php
  2. if ($_SESSION['isLoged']==true)
  3. ?>


... nie powinno być:

  1. <?php
  2. if ($_SESSION['isLoged']=='true')
  3. ?>


?

Ten post edytował Wieviór 4.03.2008, 17:05:55
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Cytat
a jaka wartość przypisana jest do $_SESSION['isLoged'] jeśli jest true?


Jakakolwiek, tylko nie 0 albo np. '' (pusta). PHP samo zmieni typ zmiennej na boolean, pomijając fakt, że można po prostu przypisać z góry zmiennej taki typ, nadając jej właśnie false albo true.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
webdice
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Ad 1. Możesz spokojnie zastąpić ten kod drugim przykładem, bo jeśli zmienna ma wartość TRUE to oczywistym jest że istnieje.
Ad 2. Nie.
Go to the top of the page
+Quote Post
l0ud
post
Post #6





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Cytat
Ad 1. Możesz spokojnie zastąpić ten kod drugim przykładem, bo jeśli zmienna ma wartość TRUE to oczywistym jest że istnieje.


Gorzej tylko jak jej... nie ma. Wtedy przy odpowiednim raportowaniu błędów kod wygeneruje notice, co oznacza, że nie jest zbyt poprawny winksmiley.jpg


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #7





Goście







Cytat(l0ud @ 4.03.2008, 19:08:23 ) *
Jakakolwiek, tylko nie 0 albo np. '' (pusta). PHP samo zmieni typ zmiennej na boolean


A to o tym nawet nie wiedziałem ;] Dzięki ;]



Jeśli robisz logowanie (a tak to wygląda), rozbij to na dwa ify, zewnętrzenie isset(), wewnętrznie is true. Bo jeśli np. ktoś się zaloguje, a potem długo wykaże bezczynność, to mu sesje zniknie czyli isset() da false i else możesz strzelić echo 'brak sesji'.

Inna sprawa, że po co ustawiać $_SESSION na coś innego niż true? Po prostu, albo zmienna sesyjna jest (bo ktoś podał dobry login i hasło i została stworzona) i wtedy pokazujesz zabezpieczoną treść, albo jej nie ma.

Ten post edytował Wieviór 4.03.2008, 17:22:36
Go to the top of the page
+Quote Post
mrok
post
Post #8





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


dzieki wielkie za wszystkie odpowiedzi - pomogly

Cytat
Bo jeśli np. ktoś się zaloguje, a potem długo wykaże bezczynność, to mu sesje zniknie czyli isset() da false i else możesz strzelić echo 'brak sesji'.

po czesci o to mi chodzi. jesli ktos sie zaloguje i odejdzie do komputera to po np 15 minutach nastapi automatyczne wylogowanie.


Cytat
Inna sprawa, że po co ustawiać $_SESSION na coś innego niż true?

poniewaz przed tym ifem wstawiam session_start() a wiec sesja juz na pewno jest - jakas. Teraz skad wiedziec ze jest to sesja zalogowanego usera??


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #9





Goście







session_start(); zaczyna tylko sesję dla strony, zmienna sesyjna $_SESSION['isLoged'] nie będzie ustawiona, dopóki gdzieś w kodzie jej nie zadeklarujesz.
Go to the top of the page
+Quote Post
mrok
post
Post #10





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


a juz rozumiem oco Ci chodzi Wieviór. Masz racje w zasadzie to ustawienie wartosci dla $_SESSION['isLoged'] nie jest konieczne, wazne zeby byla (ale zeby byla to cos jednak trzeba jej przypisac) wiec ustawiam 'true' dla czytelnosci kodu.


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #11





Goście







Lepiej zamiast tworzyć $_SESSION['isLoged'], ustaw sobie $_SESSION['user_id'] albo $_SESSION['login']. Będziesz mógł od razu użyć id użytkownika czy nazwę, a tak samo możesz sprawdzić poprzez właśnie isset ;]
Go to the top of the page
+Quote Post
mrok
post
Post #12





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


dobra idea - dzieki za pomysl


--------------------
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 Aktualny czas: 20.08.2025 - 09:11