Newsgroup: it.comp.www.php
Titolo: Aiuto: confusione in passaggio variabili di sessione

Ciao.
Sto usando le variabili di sessione per un semplice sito bilingue:
<? session_start(); ?> // ...ovviamente ;)
/* nell'INDEX.PHP c'è uno script che determina la lingua del navigatore */
/* poi questo sotto, che se la lingua non è 'it' o 'en' diventa 'en' */
if ($_SESSION['lang'] != "it" and $_SESSION['lang'] != "en")
 {  $_SESSION['lang'] = "en";  }
Uso <?=SID?> nei collegamenti tra i file;
A parte queste premesse, mi sono bloccato con un problema in una pagina in 
cui, stando ai sintomi, sembrerebbe che la variabile 'lang' venga 
invertita(!!!).
Richiamo la pagina da un'altra dove lang='it' usando <?=SID?>, ma se nella 
pagina di arrivo scrivo <?php echo $_SESSION['lang']?> mi stampa 'en' !!!
Non capisco...
Un aiuto? 

 stampa 'en' !!!
Posta un semplice codice di esempio che ritieni corretto ma che genera
il comportamento scorretto.
-- 
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.

 il comportamento scorretto.
Nel file index.php si definisce tramite un lungo script la variabile 'lang' 
(che stampata risulta 'it')
Il file č un frameset; passo il numero di sessione al frame che contiene il 
menu e ad un altro frame (la pagina di navigazione):
'...frame src="menu.php?<?=SID?>" name...'
Nel file menu.php stampo la variabile: 'it'; la stessa variabile quando 
stampata risulta 'it' pure nel secondo frame.
Infine, in menu.php, semplicemente apro la sessione all'inizio del codice e 
stampo la variabile...
<?php echo $_SESSION['lang']?>
Il risultato č 'en'!!  :-(
Non capisco dove sbaglio.

 Il risultato h 'en'!!  :-(
Prima dici "Nel file menu.php stampo la variabile: 'it';"
Poi dici "Infine, in menu.php, semplicemente apro la sessione
all'inizio del codice e stampo la variabile...[cut]Il risultato h 'en'!"
Non riesco a capire come mai dici che lo stampi in menu.php e viene
'it' e poi lo stampi di nuovo in menu.php e viene 'en'.


 'it' e poi lo stampi di nuovo in menu.php e viene 'en'.
Già, scusa, ho sbagliato a ascrivere!!
Dal file menu.php apro un'altra pagina...
href="contatti.php?<?=SID?>"
...e stampando la variabile 'lang' in contatti.php il risultato è 'en' 
anzichè 'it'.
Ecco il problema:
www.dozarte.com/severino
... e i file:
www.dozarte.com/severino/php.zip

 
www.dozarte.com/severino/php.zip
Ho provato ad aprire la pagina con IE con i cookie disattivati.
Ecco un estratto del sorgente del frameset:
<frameset rows="166,400*" cols="*"  framespacing="1" frameborder="yes"
border="1" bordercolor="#000000">
  <frame src="menu.php?PHPSESSID=110a31b4121c2840171c2e075f7c8a08"
name="severino morlin" scrolling="no" noresize id="severino morlin">
  <frame
src="pag.php?PHPSESSID=110a31b4121c2840171c2e075f7c8a08&PHPSESSID=110a31
b4121c2840171c2e075f7c8a08" name="pag" scrolling="auto" id="pag">
</frameset>
Come puoi vedere il frame "pag" ha come src un
pag.php?PHPSESSID=110a31b4121c2840171c2e075f7c8a08&PHPSESSID=110a31b4121
c2840171c2e075f7c8a08
ovvero con il PHPSESSID ripetuto (come se fosse attivato il transid).
Prova a verificare se il transid e' attivato, in tal caso rimuovi il
sistema manuale cue utilizzi per accodare il SID agli URL. Se passi due
volte il SID, PHP potrebbe (non ne sono sicuro al 100%) non riuscire ad
interpretarlo in quanto normalmente verrebbe letto come un array.


 interpretarlo in quanto normalmente verrebbe letto come un array.
'trans_sid' a parte, ho guardato bene il codice è scoperto che ho fatto un 
po' di casino!!
:-\
grazie per l'aiuto comunque, perchè quella del 'trans_sid' non la sapevo.
ciao