![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem logowanie za pomocą sesji a teraz chciałem dodać opcję zapamiętywania. Sesja standardowo jest ustawiona na 7200 a chciałem by zapamiętywała opcjonalnie na więcej niż 2 godziny. Poczytałem dokumentację CI i chciałem zamienić tamtą wartość za pomocą $this->config->set_item('sess_expiration', 86400). Niestety nie zmienia mi opcji - nadal jest standardowa wartość.
Najlepsze jest to, że po napisaniu dodatkowej funkcji, tam zmiana jest dokonywana. W construktorze zachodzi zmiana tej wartości a w dodatkowej funkcji jest wyświetlanie tej wartości już zmienionej a w funkcji logowania - nie. Próbowałem już wszystkiego ale nic mi nie wychodzi, cały czas w tym logowaniu zostaje taka sama wartość. Mogę prosić o pomoc? EDIT: Znalazłem tymczasowe rozwiązanie. W pliku konfiguracyjnym zrobiłem instrukcję warunkową. I teraz przy konkretnym warunku zmienia wartość. Ale jak już pisałem jest to tylko tymczasowe rozwiązanie. Ten post edytował adbacz 23.06.2011, 11:50:18 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 165 Pomógł: 20 Dołączył: 2.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Opcje zapamiętywania robi się w inne sposoby, zapisuje ciasteczko na komputerze np z jakimś ID i potem na tej podstawie tworzy aktualna sesje.
Nie zmienisz tej opcji przez config->set_item(), dlatego że sesja tworzy się na samym początku działania skryptu i zmienić się jej nie da. Dając warunek w pliku konfiguracyjnym przeczy się dokumentacji i założeń frameworka. Tam mają być tylko tablice z konfiguracją i nic więcej. Poczytaj w necie jak rozwiązany jest problem z zapamiętaniem użytkownika. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
No dobrze, rozumiem o co biega ale dlaczego w osobnej funkcji zachodzi zmiana a w funkcji logowania - nie? Wg mnie jest to conajmniej dziwne. Jeśli sesja tworzy się na samym początku skryptu to powinno się zmienić jej wygaśnięcie poprzez konstruktor, prawda? Przecież on zawsze jest uruchamiany na początku każdego skryptu a dopiero później właściwa funkcja.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 165 Pomógł: 20 Dołączył: 2.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przecież PHP sesja ustawia na samym początku i nie można zmienić ustawień sesji w trakcie pracy programu, czyli generowania skryptu.
Konstruktor jest to klasa, a sesje w PHP a na pewno w CI są obsługiwane przez funkcje session_start(), poczytaj o sposobie działania sesji i jak to wszystko wygląda. sesja tworzy się przed wczytaniem kontrolera a dopiero później ładowane są klasy kontrolera i tak to działa w każdym frameworku. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję, teraz wiem o co konkretnie biega. No cóż, moja wiedza kuleje... ;/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 22:05 |