Salve a tutti....chiedo aiuto! Ho provato a fare l'esempio delle Sessioni in php spiegato tra le guide di questo sito... tutto copiato perfettamente. una volta che però vado ad aprire il file test_sessio.php per testare il tutto mi viene fuori questo errore:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/netsons.org/cisiamotutti/sessionphp/config.inc.php:14) in /var/www/netsons.org/cisiamotutti/sessionphp/db_session_class.php on line 24
il file db_session_class.php è:
<?php
require('config.inc.php');
class my_session {
var $my_session_id; // l'id di sessione
var $session_time; // la durata della sessione
var $session_gc_time; // il tempo per la garbage collection
//il costruttore della classe, inizializza le variabili
function my_session($session_time, $session_gc_time) {
$this->my_session_id = (!isset($_COOKIE['my_session_id']))
? md5(uniqid(microtime()))
: $_COOKIE['my_session_id'];
$this->session_time = $session_time;
$this->session_gc_time = $session_gc_time;
}
// avvia o aggiorna la sessione
function my_session_start() {
$cookie_expire = ($this->session_time > 0) ? (time() + $this->session_time) : 0;
if(!isset($_COOKIE['my_session_id'])) {
setcookie('my_session_id', $this->my_session_id, $cookie_expire);
mysql_query("INSERT INTO my_session VALUES('" . $this->my_session_id . "', '', " . time() . ")");
} else {
if($this->session_time > 0)
setcookie('my_session_id', $this->my_session_id, $cookie_expire);
}
}
/* registra la variabili di sessione
specificata nel database */
function my_session_register($name, $value) {
$_MY_SESSION = array();
$session_query = mysql_query("SELECT session_vars FROM my_session
WHERE sessid = '{$this->my_session_id}'");
if(mysql_num_rows($session_query) > 0) {
$result = mysql_fetch_array($session_query);
$_MY_SESSION = unserialize($result['session_vars']);
$_MY_SESSION[$name] = $value;
mysql_query("UPDATE my_session SET session_vars = '" . serialize($_MY_SESSION) . "'
WHERE sessid = '{$this->my_session_id}'");
} else {
$_MY_SESSION[$name] = $value;
mysql_query("UPDATE my_session SET session_vars = '" . serialize($_MY_SESSION) . "'
WHERE sessid = '{$this->my_session_id}'");
}
}
/* legge e restituisce le variabili di sessione
(o la singola variabile specificata */
function my_session_read($key = '') {
$session_query = mysql_query("SELECT session_vars FROM my_session
WHERE sessid = '{$this->my_session_id}'");
if(mysql_num_rows($session_query) > 0) {
$result = mysql_fetch_array($session_query);
$session_vars = unserialize($result['session_vars']);
return (isset($key) && $key) ? $session_vars[$key] : $session_vars;
}
}
/* distrugge la sessione, rimuovendo i relativi
dati (non cancella il cookie) */
function my_session_destroy() {
mysql_query("UPDATE my_session SET session_vars = ''
WHERE sessid = '{$this->my_session_id}'");
}
// procedura di garbage collection
function my_session_gc() {
mysql_query("DELETE FROM my_session
WHERE session_date < " . (time() - $this->session_gc_time));
}
} // end class
?>
che richiama il file config.inc.php:
<?php
// valori espressi in secondi
$session_time = 0; // durata del cookie
$session_gc_time = 1800; // tempo per l'esecuzione della garbage collection
// variabili MySql
$db_host = 'mysql5.netsons.org';
$db_user = 'cisiamotutti';
$db_password = 'ps231284';
$db_name = 'cisiamotutti';
?>
qualcuno m'ha risposto:
Citazione:
Originariamente inviato da
La funzione session_start va processata prima dell'invio di qualsiasi header.
adesso non so cosa c'é nel config.php cosa viene eseguito, ecc...
Comunque session_start va messo all'inizio, ma proprio all'inizio prima di qualunque cosa.
ATTENZIONE!
NON prima di qualunque altra cosa ma PRIMA di QUALUNQUE output verso il client, il chè vuole dire prima di qualsiasi carattere, spazio vuoto o altro header.
Potrebbe benissimo avere 1.000 righe di codice sovrastante in modo lecito se non generano output.
io non riesco a capire quale output ci sia prima della funzione session_start()![]()
so solo che la righa che genera l'errore è:
? md5(uniqid(microtime()))
: $_COOKIE['my_session_id'];
del file db_session_class.php
Qualcuno sa aiutarmi!?!![]()