Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykonywanie zadania przy niszczeniu sesji
qarles
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2010

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


Witam. Mam taki problem:
Zrobilem sobie panel logowania, ale nie jest on oparty o sesje. Natomiast mam ustawione cos takiego ze przy kazdym poprawnym zalogowaniu robi uzytkownikowi dany token ktory jest niszczony po wylogowaniu wiec nie mozna na ten sam token ponownie zalogowac. Dziala to tak jak id sesji. Jednak klopot w tym, że jezeli user nie kliknie wyloguj to token nie zostanie usuniety przez co mozna pozniej bez logowania wejsc na strone na admina znajac ten token. Jest jakas mozliwosc zeby ustawic tak zeby np. po 5 minutach bezczynnosci token sie usuwal i automatycznie wylogowywalo usera?? (Mysle ze tu chodzi o to zeby poprostu dorobic sesje i po bezczynnosci wraz z poleceniem session_destroy() usuwal sie token, tylko nie wiem jak to wykonac)

Z góry dziękuję za pomoc.

Ten post edytował qarles 9.04.2011, 21:37:33
Go to the top of the page
+Quote Post
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


A gdzie trzymasz ten token? Jak w bazie, to możesz dołożyć kolumnę z czasem i sprawdzać, czy minęło X czasu od ostatniego włączenia strony. Jak przekroczyło, to kasuj rekord z bazy, jak nie to może dalej chodzić jako zalogowany.


--------------------
Go to the top of the page
+Quote Post
qarles
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2010

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


Tak, token trzymam w bazie:) To jak to mozna zrobic zeby z tym czasem odliczal?

Aha no i wlasnie. Bo to bedzie mi tylko niszczyl przy wlaczonym kompie i przegladarce, a ja chcialbym zeby tak jak sie wylaczy kompa czy przegladarke to niszylo sesje wraz z tokenem...

Ten post edytował qarles 9.04.2011, 23:15:05
Go to the top of the page
+Quote Post
IceManSpy
post
Post #4





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


No ale jak trzymasz ten token u kogoś na kompie, aby go identyfikować? W sesji (napisałeś, że nie opiera się o sesję)? W ciastku? Za pomocą IP?

Możesz puścić skrypt sprawdzający te czasy w CRONie.


--------------------
Go to the top of the page
+Quote Post
Rid
post
Post #5





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Można wywołać skrypt,poprzez homonogram zadań.
Go to the top of the page
+Quote Post
qarles
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2010

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


Cytat(IceManSpy @ 10.04.2011, 00:36:27 ) *
No ale jak trzymasz ten token u kogoś na kompie, aby go identyfikować? W sesji (napisałeś, że nie opiera się o sesję)? W ciastku? Za pomocą IP?

Możesz puścić skrypt sprawdzający te czasy w CRONie.


Napisalem ze token trzymam w bazie. A po kliknieciu wyloguj token jest usuwany z bazy aktualne_logowania a zostaje w bazie prawidlowe_logowania. Chodzi o to zeby tak zostawal w prawidlowych a z aktualnych byl usuwany i tak tez sie dzieje, ale zeby tez sie usuwal tak jak id sesji albo bo bezruchu albo po wylaczeniu kompa np. z pradu

Próbowalem tak, ale pokazywalo blad Notice: Undefined index: admin. Notice to usunalem wyswietlanie i niby w sumie wszystko dzialalo pieknie bo po tym czasie jak sie odswiezylo to to wyrzucal tak jak po wylogowaniu do login.php ale z bazy nie usuwalo mi to tokena...

  1. if($_SESSION['admin'] and $_SESSION['admin'] + 300 < time())
  2. {
  3. $_SESSION = array();
  4. header("Location: wyloguj.php?a='.rekorda[1].'"); //rekorda[1]<<to jest wlasnie token pobierany z bazy
  5. }
  6. else
  7. {
  8. $_SESSION['admin'] = time();
  9. }
Go to the top of the page
+Quote Post
skowron-line
post
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://pl.php.net/manual/en/function.sessi...ave-handler.php

albo jeżeli chcesz żeby Ci token "wygasa" to przy każdym przejściu na stronę odświeżaj datę w ciachu, ale najpierw sprawdź czy poprzednia data nie jest wyższa od 5min czy jak tam chcesz.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
qarles
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2010

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


Cytat(skowron-line @ 10.04.2011, 12:25:27 ) *
http://pl.php.net/manual/en/function.sessi...ave-handler.php

albo jeżeli chcesz żeby Ci token "wygasa" to przy każdym przejściu na stronę odświeżaj datę w ciachu, ale najpierw sprawdź czy poprzednia data nie jest wyższa od 5min czy jak tam chcesz.


Dzięki wielkie za podsuniety pomysl z data i jej odswiezaniu. Juz wiem jak sobie z tym poradzic. Temat do zamknięcia.
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 - 08:13