[php]: variabili di sessione

Devo utilizzare le variabili di sessione in php, qualcuno mi puo' spiegare come funzionano? ho cercato in giro ma non mi molto chiaro il suo funzionamento.

inviato 10 anni fa
Nando
X 0 X
risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho fatto alcune prove ma c' un problema:

codice nella pagina (checkLogin.php) in cui viene creata la sessione.

session_start();
$_SESSION['utente'] = $record['nominativo'];

codice della pagina (prova.php) in cui stampo la variabile di sessione:

session_start();
echo $_SESSION['utente'];

Ecco la risposta della pagina prova.php:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\www\gestass\indice.php:9) in c:\www\gestass\top.php on line 3 Amministratore

la variabile di sessione viene stampata (Amministratore) ma mi compare anche quell'errore che non capisco.

risposto 10 anni fa
Nando
X 0 X

L'articolo che ti ho segnalato parlava anche di questo:

Si noti che la funzione session_start stata posta proprio all'inizio dello script. Questo perch session_start necessita di inviare degli header, informazioni che devono precedere qualsiasi altro output dello script. In caso contrario si riceverebbe il seguente errore : "Warning: Cannot modify header information - headers already sent by (output started at...". Anche un solo spazio tra l'inizio del file dello script ed il tag <?php costituirebbe un output e quindi causerebbe errore.

Quindi nulla deve essere prodotto dal tuo script prima che venga eseguito il session_start()!

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Mi dava ancora qualche problema, ma ho risolto spostato la stampa della sessione nella pagina principale dove includo tutte le altre.

Grazie,

:bye:

risposto 10 anni fa
Nando
modificato 10 anni fa
X 0 X

La pagina che mostra quell'errore contiene qualcos'altro (altri errori)?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

No, nessun altro errore.

risposto 10 anni fa
Nando
X 0 X

Comunque il messaggio di errore chiaro: alla riga 9 dello script c:\www\gestass\indice.php qualcosa ha prodotto dell'output.

Cosa c' a quella riga?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Il file top.php un file incluso all'interno del file indice.php, a quella riga c'era la chiamata al metodo session_star(), dato che esso deve essere messo all'inizio della pagina php andava in errore, ma non solo per questo motivo, c'era anche uno spazio vuoto prima della chiamata alla sessione.

risposto 10 anni fa
Nando
X 0 X

quindi risolto?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si, tutto risolto grazie.

:bye:

risposto 10 anni fa
Nando
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda