Newsgroup: it.comp.www.php
Titolo: Propagazione del SID (sessioni)

Salve,
comincio a capire come funzionano le sessioni, ma pare non 
del tutto ( E se non le avessi capite proprio per nulla?).
Mi dilungo un po' per essere il piů chiaro possibile.
Vorrei realizzare una sessione (niente cookies!!) nel seguente modo:
partendo da index.php, dove compilo una form giusto per settare 2 
variabili var_1 e var_2, cliccando "Submit" mi sposto in 
http://localhost/PS/ProvaSessione/pag_1.php
?<?=SID?>
All'interno di tale pag_1.php prelevo le 2 variabili var_1 e var_2
e le metto all'interno di $_SESSION.
Quindi mi sposto a pag_2.php
<A HREF="
http://localhost/PS/pr_sess32.php
?<?=SID?>">Pag2 2</A>
Da questa vado a pag_3.php in modo analogo e cosě via.
Ciascuna pagina (index.php compresa) comincia con
<? php session_start(); ?>
<HTML>.....</HTML>,
tranne pag_1.php che, per settare $_SESSION, č strutturata come:
<? php session_start();
   $_SESSION["var_1"]=$_GET["var_1"];
   $_SESSION["var_2"]=$_GET["var_2"];
?>
<HTML>.....</HTML>
Se in ciascuna pagina (eccetto ovviamente index.php) stampo 
$_SESSION ottengo gli stessi risultati (i valori di var_1 e var_2).
Non riesco a spiegarmi una cosa:
nel momento in cui apro "
http://localhost/PS/index.php
" siccome al
suo interno vado a stampare l'identificatore di sessione tramite 
una   <?php echo "SessionIDentifier =".SID."<BR>; ?>
ottengo un certo valore (supponiamo sia XXXXX).
Se quindi, compilata la form, accedo a pag_1.php e 
dal suo interno vado a stampare l'identificatore di sessione
ottengo un DIVERSO valore (supponiamo YYYYY).
Questo stesso valore lo ottengo con identiche operazioni quando
accedo a pag_2.php (da pag_1.php), a pag_3.php (da pag_2.php),...
Ovviamente nella directory a cui ho settato 'session.save_path'
mi ritrovo 2 file con nome 'sess_XXXXX' e 'sess_YYYYY'.
Ma aprendo il browser e accedendo in sequenza a index.php,pag_1.php,
pag_2.php... non dovrei avere lo stesso ident. di sessione?
Quello che accade nel mio caso non significa invece che x il server
questa sequenza di operazioni č relativa a 2 diverse sessioni?
Come fare affinche risulti un solo identificatore e cioč una sola
sessione? 
E' corretto pensare che si possa (o meglio, che si debba) avere una
sola sessione?
Lavoro con PHP v4.2.3 montato come modulo di Apache v1.3.23.
Vi ringrazio,
                                Chef

 Vorrei realizzare una sessione (niente cookies!!) nel seguente modo:
Si, forse e' meglio chiarire una cosa:
1) I cookies sono meno dannosi di quel che sembra.
2) I cookies non servono *esclusivamente* a mantenere una sessione. Hanno
altri scopi [1] e possono essere BUONI [2]
3) La sessione te la devi propagare tu, anche nelle form. Hai messo un tag
<input type=hidden name="<?=session_name()?>" value="<?=session_id()?>" >
all'interno della form?
In alternativa, hai attivato session.use_trans_sid ?
IMHO: Rileggiti 
http://it2.php.net/session
 (in inglese, la traduzione in
italiano non e' completa)
e-nrico
[1] 
http://www.sasbo.com/tips-virus_security.html
 spiega bene il punto: non
sono cattivi, ma i webmaster li forgiano cosi' ;-)
[2] La propagazione di sessione attraverso URL (stile
http://sito.com/pag.php?sid=1231215tt
) può essere _MOLTO_ pericolosa,
soprattutto per l'utonto. Se puoi, scegli la strada del cookie. E' meno
critica.

 In alternativa, hai attivato session.use_trans_sid ?
I cookies saranno pure "buoni" ma io "DEVO" lavorare senza cookies
(è una delle specifiche che ho)
Adesso mi (ri)leggo le cose che mi hai indicato e provo le cose che hai
suggerito. Nel caso non capisca ancora vi ricontatterò
Thanx

 italiano non e' completa)
  A visitor accessing your web site is assigned an unique id, the 
so-called session id. This is either stored in a cookie on the user side 
or is propagated in the URL.
Potresti farmi una traduzione a volo.Praticamente da quello che sono 
riuscito a tradurre:
a un visitatore che accede al tuo sito web č assegnato un unico id, 
chiamato sessione id.
Da qui in poi non riesco a capire bene.
praticamente either dal dizionar mi dic e che puo' significare si uno o 
l'altro che entrambi.

 l'altro che entrambi.
L'identificatore è memorizzatoo nel cookie (e inviato tramite esso)
oppure è propagato via URL.
Insomma o uno oppure l'altro (aut aut)

This is either stored in a cookie on the user side or is propagated in the URL.
Questo viene o immagazzinato in un cookie lato client, oppure viene
propagato negli URL.
Ovvero la pagina che prima conteneva
	<a href="qui.php">clicca qui</a>
ora diventa, quando arriva a te,
	<a href="qui.php?SID=0d0e0a0d0b0e0e0f">clicca qui</a>
e magari quando arriva a me
	<a href="qui.php?SID=0b0a0d0c0o0d0e0d">clicca qui</a>
Se tu clicchi, il server Web si vede arrivare SID=0d0e0a0d0b0e0e0f,
e capisce che sei stato te a cliccare.
Leonardo
-- 
Avere studiato senza mettere in pratica e' inutile;
mettere in pratica senza avere studiato e' pericoloso.
                                                - Conphpucio

 
Ok, ma non riesco a capire cosa devo mettere nella successiva pagina
pag_1.php (alla quale invio i dati della form) perchè questa risulti
far parte della stessa sessione della pagina precedente (ed iniziale).
Che cavolo di sintassi devo usare?
Per le successive pag_2.php, pag3_3.php, etc... non ci dovrebbero essere 
problemi.
                                Chef

 propagato negli URL.
praticamente in inglese per dire oppure si mette either all'inizio dell 
a prima ipotesi e poi or tra le 2 ipotesi?
ovviamente nella programmazione si usa solo OR.

ovviamente nella programmazione si usa solo OR.
Pero' quell'OR significa che ALMENO UNA delle ipotesi deve essere vera -
potrebbero anche esserlo tutte, o nessuna.
A parte OpenScript ;-), non c'e' una vera corrispondenza fra i linguaggi
umani e i linguaggi di programmazione...
