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:
	
	
	
		
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:
	
	
	
		
public/home.php fa questo:
	
	
	
		
HomeController e' una classe che estende Controller. Il costruttore di Controller guarda se esistono le variabili 
	
	
	
		
 e 
	
	
	
		
.
Se esistono ok, se non esistono reindirizza a index.php.
Il mio problema e' che la riga
	
		
 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
	
		
 all'inizio del file e 
	
	
	
		
 prima di 
	
	
	
		
 ma niente. Ho provato anche con 
	
	
	
		
..
Come posso risolvere questo problema?
				
			- 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:
		PHP:
	
			$controller = new LoginController();
		$view = $controller->invoke();
		$view->render();
	globali e fa un redirect:
		PHP:
	
			$_SESSION['logged_in'] = 1;
		$_SESSION['username'] = $username;
		header("refresh: 0; url = ../public/home.php");
		exit();
	
		PHP:
	
			$controller = new HomeController();
		$view = $controller->invoke();
		$view->render();
	
		PHP:
	
	$_SESSION['logged_in']
	
		PHP:
	
	$_SESSION['username']
	Se esistono ok, se non esistono reindirizza a index.php.
Il mio problema e' che la riga
		PHP:
	
	header("refresh: 0; url = ../public/home.php");
	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
		PHP:
	
	<?php ob_start();
	
		PHP:
	
	ob_end_flush();
	
		PHP:
	
	header("Location: $url", true, 302);
	
		PHP:
	
	header("refresh: 0; url=../public/home.php");
	Come posso risolvere questo problema?
			
				Ultima modifica: