Newsgroup: it.comp.www.php
Titolo: sessioni: strano comportamento

ho una pagina A.PHP che all'ultima riga ha il codice:
print_r($_SESSION);
e mi stampa correttamente:
Array ( [username] => alex  )
quando apro la pagina B.PHP facendo il print_r($_SESSION) in seconda 
riga dopo session_start()  mi dice che username non esiste.
Mentre se da una altra pagina C.PHPdi test faccio
<?
session_start();
$_SESSION["username"]="alex";
?>
e poi torno a B.PHP
mi fa vedere che la variabile di sessione username esiste = alex.
Sembra che al termine di B.PHP non si sa perche' cancelli tutta la 
sessione. Anche in  c:\PHP\sessiondata il file di sessione subito dopo 
B.PHP e' vuoto.... nell'altro caso contiene giustamente la variabile 
username...
Sto impazzendo.
l'unica spiegazione che mi do' è che ho impostat nel php.ini la 
direttiva per il salvataggio dei file di sessione senza aver riavviato i 
lserver , ma è in  CGI quindi dovrebbe caricarlo ogni volta.
Grazie all'anmia pia che darà un senso alal mia domenica....
Alessandro

 username...
va letto: (A.PHP al posto di B.PHP):
  Sembra che al termine di A.PHP non si sa perche' cancelli tutta la
  sessione. Anche in  c:\PHP\sessiondata il file di sessione subito dopo
  A.PHP e' vuoto.... nell'altro caso contiene giustamente la variabile
  username...

 riga dopo session_start()  mi dice che username non esiste.
Non e' che a B.PHP ci arrivi tramite un header location?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
adesso ci arrivo manualmente ma l'intenzione e' quella di fare un header 
location oppure un refresh con html
perche? c'è qualche controindicazione?

Alex ha scritto:

e poi lo stesso identico sistema sul mio pc continua a funzionare 
egregiamente.....

 controindicazione?
http://www.php.net/session#40366
-- 
I am what I am, I do what I can


 egregiamente.....
error_reporting? display_errors?
-- 
I am what I am, I do what I can


 
error_reporting: 2047 (E_ALL)
display_errors: on

 
grazie. adesso me lo studio...
comunque oggi dovrebbero riavviare il server e spero che sia quello.
anche se e' strano che va e non va....

credevo  bastasse riavviare il server invece non è cambiato nulla.
oltretutto perche succede questo:
CODICE:
print_r($_SESSION);
$data=session_encode();
print("DatiSalvati:".$data."FINE");
OUTPUT:
Array ( [username] => alex [unam] => alex )
DatiSalvati:FINE
Cioè nel file dove salvare la sessione non c'è nulla.
mentre se faccio in un altro file:
CODICE:
<?
session_start();
echo "SESSIONE:<br>";
print_r($_SESSION);
$_SESSION['prova1']="prova2";
echo "SESSIONE:<br>";
print_r($_SESSION);
echo "<br>Dati:";
print(session_encode());
?>
OUTPUT:
SESSIONE:
SESSIONE:
Array ( [prova1] => prova2 )
Dati:prova1|s:6:"prova2";
ed e' giusto. me lo mantiene. e se copio incollo questi codici negli 
altri file, funzionano, nel senso che facendo session_encode vedo 
proprio che la variabile prova1 e' valorizzata.
Perche' se $_SESSION e' valorizzata alcune  volte la salva su disco e 
altre volte no?
non ci sto capendo piu' nulla....
che ci sia un bug?
grazie

Ho risolto.
Non so perche' ma nelle pagine dove avevo un oggetto che prendeva 
l'array $_SESSION come parametro, non mi salvava piu' la sessione.
Perche'?
Centra il fato che $_SESSION è globale?
Non lo so.
Ringrazio Setec per il generoso tentativo d'assistenza. Grazie
Sapresti dirmi perche' puo' succedere una cosa del genere
Grazie ancora
Alessandro

 l'array $_SESSION come parametro, non mi salvava piu' la sessione.
Se il tuo codice e' una cosa del genere allora e' il comportamento
corretto:
function set_session($session) {
	$session['my_var'] = 'my_value';
}
set_session($_SESSION);
Per fare quello che vuoi tu DEVI usare un codice di questo tipo, oppure
usare direttamente $_SESSION:
function set_session(&$session) {
	$session['my_var'] = 'my_value';
}
set_session($_SESSION);
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E


Ma perche' sul mio sistema casalingo tutto funzionava?

 Ma perche' sul mio sistema casalingo tutto funzionava?
Per favore, quota decentemente.
Se non posti il codice che stai usando, e' improbabile che ti si possa
rispondere.
-- 
I am what I am, I do what I can
