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

Rispondi quotando
Grazie comunque
