Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CI][CodeIgniter]problem z plikami sesji w Codeigniter 3
irek28061988
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.06.2014

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


Witam,
Jestem początkujący z frameworkiem Codeigniter 3 i mam problem z sesją zapisywaną w plikach.

Przykładowy kontroler w którym korzystam z sesji ma następujący kod:
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Strona extends CI_Controller {
  5.  
  6. public function index(){
  7.  
  8. echo "Strona ogólnodostępna </br></br>";
  9. echo anchor('strona/tajne', 'tajne dane');
  10.  
  11. }
  12.  
  13.  
  14. public function tajne(){
  15.  
  16. if(isset($_SESSION['loggedin'])){
  17.  
  18. echo "Jesteś zalogowany - tajne dane </br></br>";
  19.  
  20. echo anchor('strona', 'Strona ogólnodostępna');
  21. echo " - ";
  22. echo anchor('login/logout', 'wyloguj się');
  23.  
  24. } else {
  25.  
  26. echo "musisz się zalogować </br></br>";
  27.  
  28. echo anchor('strona', 'Strona ogólnodostępna');
  29. echo " - ";
  30. echo anchor('login', 'zaloguj się');
  31.  
  32. }
  33.  
  34. }
  35.  
  36. }
  37.  


  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Login extends CI_Controller {
  5.  
  6. public function index(){
  7.  
  8. $_SESSION['loggedin'] = true;
  9. redirect('strona/tajne');
  10.  
  11. }
  12.  
  13.  
  14. public function logout(){
  15.  
  16. redirect('strona/tajne');
  17.  
  18. }
  19. }
  20.  


Konfiguracja sesji jest następująca:
  1. $config['sess_driver'] = 'files';
  2. $config['sess_cookie_name'] = 'ci_session';
  3. $config['sess_expiration'] = 7200;
  4. $config['sess_save_path'] = APPPATH . 'cache/sessions';
  5. $config['sess_match_ip'] = FALSE;
  6. $config['sess_time_to_update'] = 300;
  7. $config['sess_regenerate_destroy'] = FALSE;


Jak widać pliki sesji mają być zapisywane w katalogu "application/cache/sessions" na serwerze co też się dzieje, problem z tym że z czasem w tym katalogu zbiera się dosłownie setki plików z danymi starej już nieaktualnej sesji.
Jak zrobić żeby pliki starej sesji się usuwały automatycznie i nie zalegały na serwerze?
Proszę o pomoc
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


http://forum.codeigniter.com/thread-1226.html
Go to the top of the page
+Quote Post
irek28061988
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.06.2014

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


dziękuję za odpowiedź ale i tak to nie działa

w konfiguracji codeigniter'a mam ustawione
$config['sess_expiration'] = 7200;

natomiast w php.ini na lokalnym serwerze mam ustawione
session.gc_maxlifetime = 1440

i niestety starych plików sesji nie usuwa.
Można coś jeszcze zrobić żeby Garbage Collector działał i usuwał stare pliki sesji?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Możesz wymusić http://php.net/manual/en/function.gc-collect-cycles.php
Go to the top of the page
+Quote Post
irek28061988
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.06.2014

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


pewnie mnie zbesztasz za to pytanie ale mógłbyś dać jakiś przykład odnośnie tego mojego kodu jak wymusić użycie tego Garbage Collector'a ?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Macki mi opadły...

Wstaw sobie gc_collect_cycles() w logowanie albo wylogowanie
Go to the top of the page
+Quote Post
irek28061988
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.06.2014

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


Dzięki smile.gif
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 - 01:15