Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy sesje napewno sa prawidłowe?, sprawdzenie :)
dzesi
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Witam mam taki problem , mianowicie nigdy nieuzywłem sesji w php no , ale przyszedł taki czas ze trzea ich użyć i teraż mam problem bo nie jestem pewien czy dobrze zrobiłem i rozumie sesje
tutaj na pokazenie przykładu mam taki kodzik
  1. <?php
  2. //odbieranie danych z formularza
  3. $_SESSION['login']==$login=$_POST['login'];
  4. $_SESSION['haslo']==$haslo=$_POST['haslo'];
  5.  
  6. if($login=='xxx'&& $haslo=='xxx')
  7. {$_SESSION['logowanie']='zalogowany';
  8. echo "zalogowałes sie $login";
  9. if (isset($_SESSION['logowanie'])){  echo 'blablabla';  
  10.  }
  11. }
  12. else
  13. {
  14. echo "nie masz upranienia do tej strony ";
  15. }
  16.  
  17. ?>

i teraz jak chce na jakieś stronie podczymać sesje tzn jak ktos sie zaloguje juz jeden raz to bedzie mogł swobodnie poruszac sie po sewisie
wiec na poczatku kazego pliku musze dać

  1. <?php
  2. $_SESSION['login']==$login=$_POST['login'];
  3. $_SESSION['haslo']==$haslo=$_POST['haslo'];
  4. if(isset($_SESSION['logowanie']='zalogowany'))
  5. {
  6. echo 'oki';
  7. }
  8. ?>

Przeglądałem internet i czyałem posty na forum ale tej jednej żeczy nie rozumie do konca . Mam nadzieje ze ktos pomoże (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
sanchoo
post
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


  1. <?php
  2. $_SESSION['login']==$login=$_POST['login'];
  3. $_SESSION['haslo']==$haslo=$_POST['haslo']
  4. ?>


ma byc tak:

  1. <?php
  2. $_SESSION['login']=$login=$_POST['login'];
  3. $_SESSION['haslo']=$haslo=$_POST['haslo']
  4. ?>


i jeszcze jedna wazna zasada esje widzaine sa dopiero po przeladowniu strony tzn ze jesli w jednym miejscu utowrzysz zmeinan w sesji i gdzies nizej sie do niej dowolasz to jej nie zobaczysz .. dopiero po odswierzeniu strony.

Ten post edytował sanchoo 21.09.2007, 13:46:10
Go to the top of the page
+Quote Post
tomeksobczak
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


session_destroy() niszczy wszystko takze wywolujesz to tylko na stronie na ktorej sie WYlogowujesz
Go to the top of the page
+Quote Post
sanchoo
post
Post #4





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


no tak i wchodzi na to ze sesji defacto tam nie zobaczysz.. bo byly by widziane po dooswierzeniu a ze na koncu niszysz.. to i po poodswierzeniu ich nie bedzie.. znowu stworzy ale beda to nowe a ze sa nowe to i nie widac dopiero po odswierzeniu a ze niszysz...
i tak w kolko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dzesi
post
Post #5





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Dzinx za odpowiedz, a z tym przechodzeniem miedzy sesjami to też jest dobrze czy coś robie zle , w manualu nić wiecej na ten temat nie ma, no ale myśle ze ktoś kto zna sie bardziej na sesjach niż ja pomoże rozwiązać ten problem
Go to the top of the page
+Quote Post
sanchoo
post
Post #6





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


  1. <?php
  2. $_SESSION['login']==$login=$_POST['login'];
  3. $_SESSION['haslo']==$haslo=$_POST['haslo'];
  4. if(isset($_SESSION['logowanie']='zalogowany'))
  5. {
  6. echo 'oki';
  7. }
  8. ?>

samo sprawdzanie masz dobrze chodz nie wiem po co ci to:

  1. <?php
  2. $_SESSION['login']==$login=$_POST['login'];
  3. $_SESSION['haslo']==$haslo=$_POST['haslo'];
  4. ?>

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) mowa owywisze o"wiec na poczatku kazego pliku musze dać" ... sesje jak zapiszesz w jakiejs innej stronie to ejst widzina wszedie i koniec! musisz jeszcze dac na poczatku zawsze "session_start();"

isset($_SESSION['logowanie']='zalogowany') - troche dziwne to dla mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wywal isset i daj samo "$_SESSION['logowanie']=='zalogowany' zwroc uwage ze ma byc 2x=

powinno byc ok



odbieranie:
  1. <?php
  2. //odbieranie danych z formularza
  3. $login=$_POST['login'];
  4. $haslo=$_POST['haslo'];
  5.  
  6. if($login=='xxx'&& $haslo=='xxx')
  7. {$_SESSION['logowanie']='zalogowany';
  8. {  echo 'blablabla';  
  9.  }
  10. }
  11. else
  12. {
  13. echo "nie masz upranienia do tej strony ";
  14. }
  15.  
  16.  
  17. ?>


sprawdzanie na innych stronach:

  1. <?php
  2. if($_SESSION['logowanie']='zalogowany')
  3. {
  4. echo 'oki';
  5. }
  6. ?>
Go to the top of the page
+Quote Post
Cezar708
post
Post #7





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


przede wszystkim NIGDY NIE TRZYMAJ HASŁA W SESJI!!!!

vide:
  1. <?php
  2. // nie rób tak:
  3. $_SESSION['haslo']=$_POST['haslo'];
  4. ?>


ewentualnie jako mniejsze zło możesz to hasło zahashować jakimś algorytmem (md5, sh1)
  1. <?php
  2. $_SESSION['haslo']=md5($_POST['haslo']);
  3. ?>

ale i tego nie polecam, na przechowywanie tego typu danych jest baza danych

po drugie, jeśli nie chcesz nieautoryzowanego dostępu to musisz to sprawdzać co przeładowanie strony, najprostrzy sposób to zachowanie sessionID w jakimś miejscu, i sprawdzenie podczas każdego logowania
  1. <?php
  2. function loginUser($userName, $password){
  3. // tu sprawdz w dazie danych czy zgadza sie login i haslo
  4. if ( $udaloSieLogowanie ){
  5. $_SESSION['username'] = $userName;
  6. // nie polecam!! 
  7. $_SESSION['password'] = md5($password);
  8. }
  9. }
  10. function logoutUser(){
  11. return session_destroy();
  12. }
  13.  
  14. // to sprawdzasz podczas kazdego przeladowania strony
  15. function isLogged(){
  16. if ( session_id() == pobierzZapisanaPrzyLogowaniuWartosc() ){
  17. return true;
  18. } else {
  19. return false;
  20. }
  21. }
  22. ##############
  23. // main 
  24.  
  25. if ( isLogged() == false ){
  26. header("Location: $urlDoStronyLogowania");
  27. }
  28. ?>


Ten post edytował Cezar708 21.09.2007, 13:58:08
Go to the top of the page
+Quote Post
dzesi
post
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Dziekuje chłopaki:), teraz już bede pamietał, ach człowiek pisze juz w php ponad 1 rok i ciagle mało wie (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) , ale moje motto "Kto pyta nie błądzi" (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

Ten post edytował dzesi 21.09.2007, 14:16:39
Go to the top of the page
+Quote Post
sanchoo
post
Post #9





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


Cytat(Cezar708 @ 21.09.2007, 14:57:18 ) *
przede wszystkim NIGDY NIE TRZYMAJ HASŁA W SESJI!!!!


Jak powiedzial tak zrob (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .. trzymaj w sesji wszystko ip.. id sesji ale nie haslo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jaslo tylko raz wykorzystujesz do autoryzacji... jak zalogujesz sie poprawnie.. zapisz w sesji cos nawet to co masz "zalogowano" jest ok!


  1. <?php
  2. $_SESSION['login']==$login=$_POST['login'];
  3. $_SESSION['haslo']==$haslo=$_POST['haslo'];
  4. ?>


nadal nie rozumeim jak ty chcesz tego uzyc na kazdej stronie?? bedziesz tworzyl wszedzie ukryte pola z loginem i haslem a linki to beda graficzne buttony??po to masz sesje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to jest jakas abstrakcja... ww.google.pl - > kurs php
Go to the top of the page
+Quote Post
nitro18
post
Post #10





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


a przypadkiem nie należy zarejestrować nazwy zmiennych sesyjnych poprzez session_register?
Go to the top of the page
+Quote Post
atomek4
post
Post #11





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

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


Cytat(nitro18 @ 21.09.2007, 15:40:30 ) *
a przypadkiem nie należy zarejestrować nazwy zmiennych sesyjnych poprzez session_register?


Nie , teraz należy korzystać z tablicy $_SESSION. Więcej na ten temat, jak zwykle w manualu
Go to the top of the page
+Quote Post
dzesi
post
Post #12





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Cytat
Witam dziekuje za odpowiedz , słuchaj mam problem bo w pliku oo.php mam
  1. <?php
  2. if($_SESSION['logowanie']='zalogowany')
  3. {
  4. echo 'oki';
  5. }
  6.  
  7. ?>

ale jak sie nawet nie zaloguje to i tak pokazuje mi ok , wieć trzeba zrobić spradzanie ale teraz pytanie jak ? tzn w ifach sprawdzac czy $imie i $ nazwisko = sie sobie samych jesli tak tworzy sesje
  1. <?php
  2. if($_SESSION['logowanie']='zalogowany')
  3. {
  4. echo 'oki';
  5. }
  6. ?>

i pokazuje ok , czy inaczej za pomocą sesji ?
Go to the top of the page
+Quote Post
atomek4
post
Post #13





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

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


To powinno wyglądać mniej więcej tak:

  1. <?php
  2. if($_SESSION['logowanie'] =='zalogowany')
  3. {
  4. echo 'oki';
  5. }
  6. ?>


Teraz powinno być ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował atomek4 21.09.2007, 15:00:55
Go to the top of the page
+Quote Post
dzesi
post
Post #14





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Cytat(atomek4 @ 21.09.2007, 13:59:54 ) *
To powinno wyglądać mniej więcej tak:

  1. <?php
  2. if($_SESSION['logowanie'] =='zalogowany')
  3. {
  4. echo 'oki';
  5. }
  6. ?>


Teraz powinno być ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

To tak nic nie daje , jak czytam inne fora polskie i zagraniczne duzo problem ludzie maja z tymi sesjami , tzn dość trudne jest zaprojetowanie dobrego mechnizmu sesji
Dobra już nie pisze nowych postów bo nie ma sesu , mam nadzieje ze ktos sie odezwie jak najszybciej i roziąze problem
Go to the top of the page
+Quote Post
Pogo
post
Post #15





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.09.2007
Skąd: Z nienacka

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


Hej...
Mnie udało się zaprojektować dobry system sesji, niestety przed chwilą zechciało mi się przećwiczyć cookiesy i coś tam znowu nie działa.

Ja w swoim systemie sesji odwoływałem się mysqla. czyli np

.....if($_POST['pass'] = $row[0]) { $_SESSION['auth'] = 1;}

to oczywiście jest "pisane na kolanie", nie zwracajcie uwagi na wszelkie braki itp. row0 standardowo (chyba) odwołuje się do zapytania wysłąnego do mysqla, a na kazdej stronie jest

include(auth.php)
czyli

if($_SESSSION['auth'] != 1) { kick_the_motherfucker_off }

Moje pytanie!!
Czy taki system jest bezpieczny?

Wszędzie czytam że te sesje to taki syf i badziew bo da sie połamać i wogóle, ale jeżeli chodzi o cookiesy, to sesje dla mnie są miodzio. Jeżeli tego co teraz napisałem, nie da się obejść przez wpisanie w adres jakiegoś ?session=1 (tak akurat sie nie da, sprawdzałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) to ja kocham te sesje!
Chciałbym tylko żeby ktoś mi powiedział, czy jest jakiś prosty sposób na wykorzystanie takich sposobów, i czy moge używając ich bezpiecznie spać.

Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 23:32