Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sesja i losowe id ?
Forum PHP.pl > Forum > Przedszkole
InosU31
Przepraszam ze was tak czesto mecze ale mam jeszcze pytanie odnosnie sesji...

  1. <?php
  2.  
  3.    session_start();
  4.    
  5.    if (!isset($_SESSION['inicjuj']))
  6.    {
  7.        session_regenerate_id();
  8.        $_SESSION['inicjuj'] = true;
  9.    }
  10.  
  11. ?>
Przy tworzeniu nowej sesji, dzięki funkcji session_regenerate_id() mamy pewność, że sesja dostanie losowy ID." title="Zobacz w manualu PHP" target="_manual

A pytanie jest takie ...

jak to wyglada w "praktyce"? Jak uzyskac to "losowe" ID ?

ja zrobilem cos takiego :
  1. <?php
  2.  
  3.   if (!isset($_SESSION["zalogowany"]))
  4.   {
  5.       $_SESSION["zalogowany"] = true;
  6.   }
  7.  
  8. //dalszy kod
  9.  
  10. if ($_SESSION["zalogowany"] == false)
  11. {
  12.    if (!empty($_login) and (!is_numeric($_login)) && (!empty($_passwd)))
  13.    {
  14.        
  15.        $sql = mysql_query ("SELECT * FROM users WHERE user_login = '$_login' and user_haslo = '$_passwd'") or die ("nie znaleziono takiego usera");    
  16.        if (mysql_num_rows($sql) != 0)
  17.        {
  18.            while ($warunek = mysql_fetch_array($sql))
  19.            {
  20.            $id = $warunek['user_id'];    
  21.            echo $id;
  22.            }
  23.            
  24.            echo "ZOSTALES POMYSLNIE ZALOGOWANY<br>";
  25.            $_SESSION["zalogowany"] = $id;
  26. ?>


jak jestem zalogowany jako user ktory w bazie ma id=5 to przypisuje sesji 5, jak bym uzyl
  1. <?php
  2. $_SESSION["zalogowany"] = true;
  3. ?>

moje id bedzie rowne 1 niewazne jakiego usera uzyje.

Czy jak sie zaloguje 2 uzytkownikow z 2 roznych kompow to ich id bedzie = 1 czy moze jeden bedzie mial 1 a drugi np.2 questionmark.gif jak to dziala questionmark.gif

mam nadzieje ze napisalem zrozumiale.

Dzieki i pozdrawiam
Kalinowcyk
Stwórz sobie dodatkowe pole w sesji z id użytkownika i w nim sprawdzaj o kogo chodzi.

  1. <?php
  2. $_SESSION['id_uzytkownika']=$id;
  3. ?>
InosU31
dzieki cos pomysle. nadal nie wiem jak to dziala no ale moze jakos sam do tego dojde.

pozdrawiam
Spawnm
gdy inicjujesz na stronie session_start dostajesz session id,
jeśli chcesz je zmienić na nowe dajesz session_regenerate_id
oba id są losowe .
dla zabezpieczenia przed jego przechwytem możesz je zapisywać w bazie dla danego usera wraz z jego ip i potem sprawdzać czy ip i sid usera pasują do tych z bazy.
zabawy z $_SESSION['id_uzytkownika']=$id; są zbędne
InosU31
o dzieki:-)

to juz cos wiem ;-) Teraz znow cos pokombinuje zeby bylo dobrze:-)

Pozdrawiam:-)

Cytat(Spawnm @ 27.03.2009, 18:01:01 ) *
gdy inicjujesz na stronie session_start dostajesz session id,
jeśli chcesz je zmienić na nowe dajesz session_regenerate_id
oba id są losowe .
dla zabezpieczenia przed jego przechwytem możesz je zapisywać w bazie dla danego usera wraz z jego ip i potem sprawdzać czy ip i sid usera pasują do tych z bazy.
zabawy z $_SESSION['id_uzytkownika']=$id; są zbędne



sory ze wracam do tego ale ciagle moja sesja ma wartosc 1 ://
kurcze nie daje mi to spokoju bo nie wiem jak mam zrobic zeby mialo to "losowe id" a jedynka podczas kazdego zalogowania nie jest losowa://
  1. <?php
  2.    
  3.    if (!isset($_SESSION['log_in']))
  4.    {
  5.        session_regenerate_id();
  6.        $_SESSION['log_in'] = true;
  7.        $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  8.        $_SESSION['browser'] = $_SERVER['HTTP_USER_AGENT'];
  9.    }
  10. ?>


to wyzej moze nie jest dobrze napsiane no ale mimo wszystko kombinuje juz troche i ciagle mam ta 1 :// Moze mi ktos wyjasnic na czym polega owe "losowe" - czyli przypadkowe - id questionmark.gif

bylbym wdzieczny.

swoj przyklad opieralem na TYM ale nic mi z tego i tak ciagle mam "STALE" id :////


Spawnm napisales mi odpiwiedz ale nie wiedzialem jakie jest do tego polecenie;-)

echo session_id(); rozwiazalo sprawe;-) dzieki;-)

mozna zamknac:-)
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.