Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Algorytm]Własne Sesje, Różne typy...
Spirit86
post 8.06.2005, 19:43:58
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam, mam następujący problem:
chcę zbudować własny mechanizm sesji. Głównym założeniem jest bezpieczeństwo aplikacji WWW. Zamierzam sprawdzać, czy przypadkiem 2 osoby jednocześnie nie są zalogowane na serwerze . Jednak, to nie jest problem, jak na razie winksmiley.jpg. Teraz mam problem z zaplanowaniem klasy, tj. zastanawiam się, czy lepiej jest stworzyć klasę obsługującą tylko mój CMS (sesje obejmowały by tylko potrzebne dane CMS'a), czy też zbudować "uniwersalny" system sesji, obsługujący nieskończoną liczbę danych, które mogły by w sobie zawierać.
Na razie jestem bardziej przychylny rozwiązaniu drugiemu, myślę nawet, że w Bazie Danych wystarczyła by tylko jedna kolumna przechowywująca "sprasowane zmienne".
Schemat Bazy Danych :
Kod
id | time | ip | place | vars

Zastanawiam się także nad typem danych SQL , jakim będzie vars (sprawsowana tablica) miałem zamiar dać VARCHAR (64), jednakże może być nie wystarczające na większą ilość danych.
Może zamiast tablicy przechowywać w SQL zrobić to na cookies? Choć może komuś cookies nie obsługiwać. Zresztą to jest niebezpieczne :\

Ten post edytował Spirit86 8.06.2005, 20:02:54


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
SongoQ
post 8.06.2005, 20:08:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


2 rozwiazanie lepsze:)

Odnosnie pol to id_sesji, data, czas_wygasniecia, sesje
pole sesja oczywiscie jakis ogromny typ bo jesli w sesji bedzie duzo danych to moze sie sypac. Tak na prawde sesja w bazie danych to zserializowana tablica.


--------------------
Go to the top of the page
+Quote Post
NuLL
post 8.06.2005, 20:16:08
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Jeśli tablica duża to można przepuuścić przez gzcompress()" title="Zobacz w manualu PHP" target="_manual winksmiley.jpg


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
sobstel
post 8.06.2005, 22:47:50
Post #4





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


na zmienne sesyjne radze dac pole TEXT wzglednie VARCHAR(255).

nie dalej jak wczoraj glowilem sie kilka godzin dlaczego mi pada obsluga sesji w aplikacji, po czym odkrylem ze prostu prostu dalem za male pole (VARCHAR 128) na dane sesyjne i byly obcinane w wyniku czego robil sie niezly kogel mogel (wczesniej nie przechowywalem duzo wartosci i nie wystapowal problem) dlatego ostatecznie zdecydowalem sie na TEXT.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
Spirit86
post 9.06.2005, 10:52:57
Post #5





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


@sopel: po analizie, spłaszczeniu kilku tblic doszedłem do tego samego wniosku biggrin.gif


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
SongoQ
post 9.06.2005, 11:06:25
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Rozniez mam text dla sesji i jakos aplikacja juz prawie rok dziala i jeszcze sie nic nie wywalilo.


--------------------
Go to the top of the page
+Quote Post
sobstel
post 9.06.2005, 11:29:12
Post #7





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


moj wlasny przypadek opisany 2 posty powyzej byl typowym przykladem krotkowzrocznosci. gdy jakis czas temu powstawal moj handler obslugi sesji nie przechowywalem duzo danych sesyjnych (i nie przypuszczalem ze kiedys bede - tak to jest z rzeczami ktora maja byc uniwersalne), wiec poskąpiłem na przestrzeni w bazie. byl tez inny powod, jako typu tabeli uzylem HEAP/MEMORY (ktory nie obsluguje TEXT). wszystko dla lepszej wydajnosci, dlatego ciagle zastanawiam sie czy tabela sesyjna z zalozonym indeksem na sessionid wydaje sie byc wystaraczajaco szybka, czy tez MEMORY z VARCHAR(255) bylby znacznie lepszy.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
AxZx
post 9.06.2005, 12:34:47
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


a moze ktos powiedziec jak mniej wiecej powinien wygladac algorytm dzialania takiego systemu sesji?


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
SongoQ
post 9.06.2005, 13:22:59
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@AxZx masz gotowa funkcje ktora wywoluje Ci wlasne funkcje do zapisu, odczytu, usuwania. Nastepnie umieszczasz zwykle zapytania. Nic w tym skomplikowanego nie ma.


--------------------
Go to the top of the page
+Quote Post
sobstel
post 9.06.2005, 15:23:44
Post #10





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


Cytat(AxZx @ 2005-06-09 12:34:47)
a moze ktos powiedziec jak mniej wiecej powinien wygladac algorytm dzialania takiego systemu sesji?

na wortalu jest artykul jak zrobic wlasny handler sesji na bazie


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
Spirit86
post 10.06.2005, 21:21:34
Post #11





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


stworzyłem już klasę, jednak wydaje mi się strasznie wolna, czas jaki się generuje to: 0.012-0.015 s. (zaincludowałm tylko sterownik bazy danych no i obsługę autologowania. Czy to nie za długo? :|


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
SongoQ
post 10.06.2005, 22:24:20
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Zrob testy z roznymi wielkosciamy sesji i wtedy sprawdz jak sie maja czasy.


--------------------
Go to the top of the page
+Quote Post
Spirit86
post 11.06.2005, 00:23:48
Post #13





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


mówisz o testowaniu tylko i wyłącznie mojej klasy, czy np. porównaniu jej do session_register ?


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
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 Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:17