Ciao, sto facendo un progetto in php mvc ma senza framework. Ho organizzato i file in questo modo:
- directory public: ci sono i file accessibili dall'esterno
- directory View: ci sono i file .php ma essenzialmente e' solo html
- direcory Model: contiene i file relativi alla connessione al database, e le classi che definiscono gli oggetti, per esempio la classe User.php
- directory Controller: contiene una classe 'generica' Controller e varie classi Controller piu' specifiche.


Ho creat una pagina di login (View/Login.php) con un form il cui action manda a public/index.php. In index.php c'e' questo codice:
codice:
$controller = new LoginController(); 
$view = $controller->invoke();
$view->render();
invoke() e' una funzione in Controller/LoginController.php che legge i dati inseriti dall'utente e li controlla, se sono corretti (esiste un utente nel database con tale username e password) allora crea due variabili
globali e fa un redirect:
codice:
$_SESSION['logged_in'] = 1;
$_SESSION['username'] = $username;
header("refresh: 0; url = ../public/home.php");
exit();
public/home.php fa questo:
codice:
    
$controller = new HomeController();
$view = $controller->invoke();
$view->render();
HomeController e' una classe che estende Controller. Il costruttore di Controller guarda se esistono le variabili
Codice PHP:
$_SESSION['logged_in'
e
Codice PHP:
$_SESSION['username'
.
Se esistono ok, se non esistono reindirizza a index.php.

Il mio problema e' che la riga
Codice PHP:
header("refresh: 0; url = ../public/home.php"); 
non reindirizza.
Spiego meglio: quando inserisco dei dati corretti (utente registrato) reindirizza per brevissimo tempo a home.php ma poi ritorna a index.php.
Invece dovrebbe reindirizzare a home.php e rimanerci, non tornare a index.php.
ho provato anche aggiungendo
Codice PHP:
<?php ob_start();
all'inizio del file e
Codice PHP:
ob_end_flush(); 
prima di
Codice PHP:
header("Location: $url"true302); 
ma niente. Ho provato anche con
Codice PHP:
header("refresh: 0; url=../public/home.php"); 
..


Come posso risolvere questo problema?