Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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 ?


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
..:: 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.


--------------------
Workshop: FC2/WinXp SP1 | Apache 2.0.50 | PHP 5.00 | MySQL 4.0.20 | Zend Studio 3.5 :)
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 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.


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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 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 winksmiley.jpg .


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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 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 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.


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 03:29