Per natura di funzionamento del protocollo http, gli header vanno inviati sempre prima di un qualsiasi altro output.
Inoltre è buona pratica inizializzare la sessione come prima istruzione dello script.
Di conseguenza ti suggerirei di operare queste modifiche:
PHP:<?php session_start(); #> controllo sessione valida if (empty($_SESSION['user_id'])) { header('Location:index.php'); // echo "qualcosa non quadra!"; exit(); } #> se arrivo fin qui l'utente è autenticato, procedo con lo script.. echo 'ciao'; require_once 'connessione.php'; echo 'la pagina protetta'; ?><html> <head> <title> Pagina protetta </title> </head> <body> <h1> Questa è una pagina protetta </h1> </body> </html>
Grazie per il consiglio !
Qualcuno ha una soluzione al mio problema?