Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odtwarzanie sesji
rzseattle
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Hey

Mam problem, przy ktorym normalnie sie zakrecilem. Ciekawi mnie jak wy odtwarzacie sesje uzytkownika, poniewaz moje proby narazie nic nie przyniosly. Najpierw chcialem aby obiekt auth zwracal id uzytkownika (po rozpoznaniu ciacha) a nastepnie na podstawie id session handler odtwarzal sesje. Problem polega na tym ze obiekt auth wykozystuje sesje do przechowywania danych o urzytkowniku. Czyli jesli go wywolam przy otwieraniu sesji to po zakonczeniu rejestracji session handlera dane uprzednio w sesji umieszczone gubia sie. Niby da sie ominac ten problem przez pominiecie obiektu auth ale nie musze nikomu tlumaczyc ze to nie jest dobry pomysl. Moze ktos posiada juz doswiadczenia z odtwarzaniem sesji i zechce sie nimi podzielic ?
Go to the top of the page
+Quote Post
..:: pingu ::..
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 15.12.2003
Skąd: Mikołów

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


nie wiem czy ci to pomozę ale
[php:1:9e04596d6e]<?php
session_id ( $dane );
session_start();
?>[/php:1:9e04596d6e]
tak mozesz ustalic sesje, podbierajac skąds numer sesji jako $dane.
Go to the top of the page
+Quote Post
rzseattle
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
tak mozesz ustalic sesje, podbierajac skąds numer sesji jako $dane.


Nie o to mi chodzilo (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Problemem jest dla mnie odtwarzanie sesji jesli dane potrzebne do jej odtworzenia dostarcza obiekt auth ktory z kolei uzywa sesji do przetrzymywania danych. Nie chce obnizac bezpieczenstwa systemu omijajac obiektu auth ale chyba jednak nie ma innego wyjscia. Tylko do ciasteczka autoryzujacego bede musial dodac unikalny klucz zeby ktos sobie na wlasna reke ciasteczka nie zrobil.
Go to the top of the page
+Quote Post
boloo77
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 1.10.2003
Skąd: Mikołów

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


Nie jestem pewny czy Ci to pomoże ale możesz spróbować troche zmienić podejście do tematu...

w sesji trzymasz cały obiekt autch.

musisz jedynie pamiętać żeby zrobić to w ten sposób:
[php:1:ecde89ef99]<?php
session_write_close();
//Tutaj definicja klasy autch.
session_start();
?>[/php:1:ecde89ef99]

no i jak gość się zaloguje obiekt autch pobiera jego dane i tworzysz zmienna sesji - obiekt autch
[php:1:ecde89ef99]<?php
$autch=New autch();
if($autch->Zaloguj($login,$haslo))//jesli poprawnie sie zalogowal autch->Zaloguj() pobiera jego dane i zwraca true
{
$_SESSION['autch']=$autch;
}
?>[/php:1:ecde89ef99]

a potem tylko sprawdzasz czy istnieje obiekt
[php:1:ecde89ef99]<?php
if(isset($_SESSION['autch']) && get_class ( $_SESSION['autch']=="autch"))
{
//gosc jest zalogowany
$autch=$_SESSION['auych'];
}
else
{
header("Location:logowanie.php");
//gosc nie jest zalogowany
}
?>[/php:1:ecde89ef99]
Go to the top of the page
+Quote Post
rzseattle
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


@boloo77 biestety nie o to mi chodzilo. Juz nawet nie patrz na to jak na autoryzacje. Chodzi o to ze obiekt ktory powinien dostarczyc session handlerowi dane dla odtworzenia starej sesji sam jej uzywa. Wszystko sie krzaczy poniewaz ow obiekt umieszcza dane w standardowej sesji php ktora jest nadpisywana przez uzyty pozniej session handler. Wiec dane sie gubia (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Powtorne wywolanie obiektu nie wchodzi w gre poniewaz moze nie miec juz wystarczajacych danych do zalogowania uzytkownika (np gdyby wymienial jego ciastko logujace z powodow bezpieczenstwa). Czyli jeden wielki paradox (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
Bora
post
Post #6





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

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


czyli jeże.i dobrze rozumiem to używasz jakby 2'ch sesji na raz. Ja bym zrobił to tak. Własna klasa z obsługą sesji po session read zapisać id jako zmeinną , nowe sessionid przypisać przez session_id($nowe). Potem tylko jeszzce przy zapisie powtórzyć tyko odwrócony proces. Nie wiem czy dobrze zrozumiałe ale chyba o to biega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . aha i może jeszcze być tak jak ja ostatnio sie zakręciłem. zastosowałem przed klasą do obsługi sesji klase która przetwarzała tablic get i post a potem je czyściła co spowodowało spore zamieszanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rzseattle
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


No to jest logiczne rozumowanie. Niestety staram za wszelka cene trzymac sie wyznaczonych celow. Czyli np session handler nie powinien zajmowac sie niczym innym jak zapoczatkowaniem sesji uzytkownika , starej badz nowej. Nie powinien sie przejmowac tym ze obiekt auth costam chce i trzeba by bylo go wspomoc przez przepisanie okreslonych danych do sesji :/ .

Ale dzieki bora chyba jednak przepisze ta jedna tablice autoyzacyjna i bede mial spokoj.
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: 23.08.2025 - 16:53