Newsgroup: it.comp.www.php
Titolo: confusione sulle sessioni

Volevo fare un sistema di login univoco:
mi occorre il session_id e volevo sapere se questa cosa e' 
inutile:
$_SESSION["sid"]=session_id; <-- ma alla fine che e' sto 
session_id una chiave univoca generata con timestamp?
(chiedo questo perche' non ho capito se ogni qualvolta che 
faccio session_start mi rigenera sta c******  di chiave.)
oppure tutte le volte che faccio session_id mi rida' lo 
stesso numero della sessione?
appesantisco di piu' il server se faccio session_id oppure 
stipo tale dato in una var di sessione?
tnks ciao

dimenticato una cosa sess_id che tipo di dato e' nel di db? 
varchar da quanto 255? 40?

 session_id una chiave univoca generata con timestamp?
Mi pare che non sia la prima domanda che fai sulle sessioni. Ti conviene
leggerti bene il manuale.
Quando fai session_start() si arrangia lui a prendere la sessione dal
cookie o dal GET, e a crearsi le costanti e la $_SESSION
Bye.

 cookie o dal GET, e a crearsi le costanti e la $_SESSION
key perdono ho letto il manuale e ne son venuto fuori cmq se 
ero stato io a fare dom sulle session sara' successo un bel 
po' di mesi fa!!!!!!!
Sono riuscito a fare che un utente si puo' loggare solo
da un pc alla volta, cioe' se qlcuno si logga da un altra
parte butta fuori l'altro... mi e' rimasto un unico problema
che quei bastardi di browser si ricordano la session!mi
spiego: posso aprire n tabsheet di FF (o n istanze e' 
uguale) e siccome io mi baso sulle variabili session per 
vedere se
e' loggato o meno risultano gia' loggati(naturalmente dallo 
stesso pc)!!!! Come faccio??????
Esiste una funzione php che mi ritorna un uidl dell'istanza 
del  browser ? Se riesco a collegare questa cosa al sid sono 
a posto... oppure dovrei fare in maniera tale da costringere 
  utente a non bypassare la pagina di login ma come posso 
fare visto che mi baso sulle SESSION? :-( :-(

 stesso pc)!!!! Come faccio??????
Non puoi fare niente.
La sessione viene salvata in un cookie in memoria, quindi finche` il
browser e` aperto, il cookie e` valido.
Devi chiudere il browser per perdere la sessione (tutto il browser, non
solo una tab o una finestra).
Bye.
-- 
Alessandro Pellizzari

 varchar da quanto 255? 40?
Il session ID non va in database, quindi non e` un tipo di dato del DB.
E` un codice hash, attualmente mi pare sui 40 caratteri, ma non e` detto
che non cambi. Credo che salvandolo con un varchar(255) dovresti essere
a posto per un po', ma tieni d'occhio i changelog di PHP.
Bye.
-- 
Alessandro Pellizzari

 Il session ID non va in database, quindi non e` un tipo di dato del DB.
io tramite quello salvato in una tabella tenporanea del db 
riesco a far loggare univocamente l'utente...  inoltre son 
riuscito a in*****re le tabs di FF e le multi istanze di FF 
o IE in quanto controllo il referer... unico cosa che mi 
frega e' ql maledetto ie con nuova finestra di ie , ma mi 
son stufato sta cosi'!!!
Ciao && grazie per le info....
ps
io avevo letto che era da 32bit il sid e gli avevo dato 
varchar(32), ma faro' come mi hai detto tu con 255!!!

 ha scritto:

Non vorrei dire una cavolata, ma, se apri le successive finestre del
browser da "start -> esegui", ogni nuova finestra e` libera dalla
sessione.
Andrea

 sessione.
Per mia fortuna non uso Windows piu` di un paio d'ore la settimana,
quindi non posso essere sicurissimo per IE, ma sotto Linux, se ho una
finestra di un browser aperto, per quante altre ne apra, quella vede i
cookie delle altre, e li manda al server a cui si collega. E questo con
tutti i browser: Firefox, Galeon, Epiphany, Opera. Ne tengo 4 (piu` IE
sotto Wine) proprio per avere sessioni diverse con gli stessi siti che sto
testando (oltre che per vedere se i css funzionano).
Bye.

testando (oltre che per vedere se i css funzionano).
Idem. Scomodo ma indispensabile.
Andrea

 testando (oltre che per vedere se i css funzionano).
Io mi sono scritto un mio gestore di sessioni che implementa un concetto
di "sessione di finestra". Ogni utente ha una "sessione di utente" che e'
quella gestita da session_start(), e in piu' per ogni finestra metto un
parametro "w" di tipo intero che e' la sessione di finestra. Per esempio:
$_SESSION['nomeparametro'] e' un parametro di sessione di utente valido
per tutte le sessioni di finestra, mentre
$w = "W" . (int) $_REQUEST['w'] . "_";
$_SESSION[ $w . 'nomeparametro'] e' un parametro della sessione di finestra.
Adottando questo criterio sistematicamente nel codice, posso avere diverse
finestre nelle quali gira una istanza indipendente dell'applicazione WEB,
cosa molto utile per l'utente.
In realta' la cosa si semplifica molto scrivendo le proprie funzioncine
che fanno il get/set di parametri di sessione di utente o parametri di
sessione di finestra.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it