Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zalety i wady uzywania stalegi ID sesji
Forum PHP.pl > Forum > PHP
Kinool
zastanawia mnie jaka sa zapety posiadania stalego session_id do kazdego usera, w phpbb2 jest cos takiego nie jestem pewien bo sie blizej nie przygladalem czy id jest zmianiane czy nie ale w tebeli prefix_users kazdy user ma przypisane identyfikator, tak sie zastanawiam jakie moga plynac z tego zalety? bo wada jak dlamnie jest dosc oczywista, zdobycie SID przes osobe postronna moze posluzyc do przejecia sesji!?
scanner
Stałe SID?
Coś się koledze pomieszło.

To że user ma jakies zahaszowane ID nie oznacza, ze jest to od razu session_id.
Osobiście preferuję mechanizm sprawdzania a samym początku skryptu, czy session_id przekazywane w urlu czy ciastku jest tym, które mi zwraca session_id() i jeśli nie jest zgodne, to przeładowujemy się nadpisując session_id.
Parti
Polecam także poczytać: session_regenerate_id
Kinool
hmm fakt moze i mi sie pomylilo smile.gif ale dam sobie uciac xxx ze kiedys widzialem gdzies session_id ale nie bylem pewien jego przeznaczneni, czy bylo przechowywany tam SID bierzacej sesji czy moze cos inego, no nic niewazne smile.gif

teraz mam proglem innej natury smile.gif zrobilem sobie klase do obslugi zapytan bazy MySQL, wczesniej jednam deklaruje klase do przechowywania sesji w bazie, i tam najpier ustanawiane jest polaczenie poprzez mysql_connect, korzystajac z manuala dowiaduje sie ze funkcja ta:
Cytat
Zwraca identyfikator połączenia w przypadku powodzenia, lub FALSE jeśli wystąpi błąd.


identyfikator polaczenia jest mi potzrbny zeby korzystac np. z funkcji mysql_stat czy mysql_ping wiec przy piwerszym polaczeniu z baza korzystam z czegos takiego
  1. <?php
  2.  
  3. function connect_mysql ()
  4. {
  5.  $this->connect_id = sql_id = mysql_connect('host', 'user', 'pass');
  6. // tu jeszcze wybieram baze
  7. if ($this->connect_id) {
  8.  return true;
  9.  } else {
  10.  return false;
  11.  }
  12. }
  13. // tak by mnijwiecej wygladala funkcja polaczenia
  14. // potem che przekazac identyfikator polaczenia by mogl byc wykorzystwany w innych
  15. zapytaniach, np w mojej klasie do obslugi bazy konstruktor jest prosty i wyglada
  16. mnijwiecej tak:
  17.  
  18. function sql_class ($sql_id) {
  19. // tu che sprawdzic czy polaczene jest nawiazane
  20. if(!mysql_ping($sql_id) {
  21. // jesli false to znaczy ze polaczenia niema i ptrzeba sie polaczyc ...
  22.  } else {
  23.  $this->connect_id = $sql_id;
  24.  }
  25. }
  26. ?>


przy tworzeniu egzeplaza klasy sql_class robie cos takiego:
$sql = new sql_class($session->connect_id); // czyli przekazuje identyfikator polaczenia

ale sad.gif wywala mi blad ze do funkcji mysql_ping przeazywana jest wartosc null!
Cytat
Warning: mysql_stat() expects parameter 1 to be resource, null given


ma ktos jakis pomysl czemu?? albo jak zrobic to zeby przekazywalo mi id polaczenia
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.