Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

Problem z czasem sesji w MVC

odsłon: 2.87K#mvc #session #sessiontime
0

Cześć,

Utworzyłem stronę wg własnego framework MVC, zgodnie ze sztuką z książki Marcina, mam jednak problem z czasem sesji. Strona w php 7.4 i IIS10

w index.php mam:

session_set_cookie_params(3600);
session_start();

Po upływie godziny bez aktywności jak wchodzę np. na home/start to wyskakuje mi błąd

PHP Notice: Undefined index: user_data in ….

Natomiast w kontrolerze home dla start mam:

public function start(){
if(!isset($_SESSION['is_logged_in'])){
header('Location: '.ROOT_URL.'home');
}
$this->returnView('start');
}

tablica user_data sesji jest wykorzystywana na stronie start, ale skoro sesja się skończyła to powinna zadziałać funkcja isset dla $_SESSION[‘is_logged_in’] i przejść do home, gdzie home to jest strona logowania bez żadnych zmiennych sesji.

Nie mam pomysłu dlaczego nie działa sprawdzenie tej zmiennej. Jakieś pomysły?

odpowiedział na pytanie
Dodaj komentarz
0
Daniel (gość) 0 Comments

Dzięki Marcin, metoda prób i błędów przed twoja odpowiedzią doszedłem do tego ze przy dodaniu else działa prawidłowo i poprawiłem kod. Teraz działa jak należy.

jeszcze raz dziekuje

Zmienił status na: opublikowane
Dodaj komentarz
0

Hej Daniel,

samo wykonanie polecenia header nie spowoduje, że kod PHP przestanie się wykonywać i zostaniesz magicznie przeniesiony do nowej podstrony. Ta funkcja dodaje jedynie wpis do nagłówka zwracanej odpowiedzi przez serwer.

Obstawiam, że sprawdzenie wykonuje się poprawnie, a jedynie dalsza część kodu psuje Twoje zamiary.

To, co możesz zrobić, to wstawić metodę returnView w bloku else, wtedy widok zostanie zwrócony tylko wtedy, gdy zmienna faktycznie istnieje. Możesz też, zaraz po wywołaniu funkcji header, wstawić po prostu exit(); czyli zakończyć procesowanie dalszego kodu PHP. Wtedy rezultatem będzie pusta strona z nagłówkiem informującym o przekierowaniu na inną lokalizację.

odpowiedział na pytanie
Dodaj komentarz
Wpisz swoją odpowiedź.
Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.