Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy sesje napewno sa prawidłowe?
Forum PHP.pl > Forum > PHP
dzesi
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 sadsmiley02.gif worriedsmiley.gif dry.gif
sanchoo
  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.
tomeksobczak
session_destroy() niszczy wszystko takze wywolujesz to tylko na stronie na ktorej sie WYlogowujesz
sanchoo
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 smile.gif
dzesi
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
sanchoo
  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. ?>

questionmark.gifquestionmark.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 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. ?>
Cezar708
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. ?>
dzesi
Dziekuje chłopaki:), teraz już bede pamietał, ach człowiek pisze juz w php ponad 1 rok i ciagle mało wie sadsmiley02.gif , ale moje motto "Kto pyta nie błądzi" worriedsmiley.gif
sanchoo
Cytat(Cezar708 @ 21.09.2007, 14:57:18 ) *
przede wszystkim NIGDY NIE TRZYMAJ HASŁA W SESJI!!!!


Jak powiedzial tak zrob smile.gif .. trzymaj w sesji wszystko ip.. id sesji ale nie haslo 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 smile.gif to jest jakas abstrakcja... ww.google.pl - > kurs php
nitro18
a przypadkiem nie należy zarejestrować nazwy zmiennych sesyjnych poprzez session_register?
atomek4
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
dzesi
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 ?
atomek4
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 smile.gif
dzesi
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 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
Pogo
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 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.
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.