Newsgroup: it.comp.www.php
Titolo: Register Globals e sessioni

Dal php.ini:
; You should do your best to write your scripts so that they do not
require
; register_globals to be on;  Using form variables as globals can easily
lead
; to possible security problems, if the code is not very well thought
of.
Ok, era off.
E il codice con le sessioni non funzionava.
Portatolo a on, funzionano le sessioni
(evvaaaaaaaaiiiiiiiiiiiii!!!!!!)....
Ma allora č meglio on o off?
E' piů sicuro on o off?
Eppoi dove trovo un'anima pia che mi spiaghi come diavolo funzionano ste
sessioni???????
Claudio

E' più sicuro on o off?
E' più sicuro off, nel senso che, IMO, si evitano banali ma
insidiosissimi bug per la sovrapposizione nello spazio dei
nomi.
Ad esempio, metti che in una query string hai una variabile
$user, che viene definita anche nello script, per un altro
scopo!
PHP è così facile che diventa paradossalmente "difficile"!
Bisogna stare molto attenti, altrimenti si perdono ore per
scovare i perché di query che non funzionano e altre cosucce
(mi è capitato...mi è capitato).
Certo, bisogna abituarsi al nuovo stile di programmazione,
ma dopo averci fatto la mano, gli script diventano anche più
ordinati, più gestibili e quindi più sicuri.
--
Oggi ho fatto una scoperta, ho trovato un computer...
The MentoR

Il codice l'ho preso da qua:
http://www.troutworks.com/phpbook/ch25/listing25_1.phps
E l'ho dovuto modificare un pochettino (php 4.2.1)
Ma il php_self che sul manuale non ho trovato, ora esiste ancora?
Spesso farebbe comodo invece di ricordarsi tutti i link :(
Ciao
Cla



 Claudio
Ma scusa non fai prima a dare una letturina al manuale?
http://www.php.net/manual/it/ref.session.php
Sicuramente te lo spiega meglio di qualsiasi persona sul ng...
Usando $_SESSION['variabile'] puoi fare a meno anche di session_register().
Tra l'altro c'è un errore nella documentazione italiana:
"$_SESSION non è sempre globale come $HTTP_SESSION_VARS."
A me sembra che sia proprio il contrario.. o no?



 nomi.
E come faccio ad utilizzare le sessioni se register globals è off?
Grazie
Cla

 
http://www.php.net/manual/it/ref.session.php
Lo so che c'è il manuale, ma sarò stupido io, ma non ci capisco granchè
là sopra :(
Per esempio (riporto testuale):
PHP controllerà automaticamente (se session.auto_start è settato a 1) o
su vostra richiesta (esplicitamente tramite session_start() o
implicitamente tramite session_register()) se uno specifico id di
sessione sia stato inviato con la richiesta. In questo caso , il
precedente ambiente salvato viene ricreato.
Ok, allora io in una pagina faccio session_register, mi crea la
sessione, poi apro il link ad un'altra pagina...
E lì come se la ripiglia la sessione?
Non voglio passargli il sid su url, come devo fare?
Teoricamente le sessioni sono independenti dai cookies o no?
Se un utente non fa il logout, io come distruggo la sessione?
Allora se c'è un cookie devo averne il controllo, perchè non voglio che
duri 1 ora!
Poi giocando ho appena scoperto che usando l'array $_SESSION e
register_globals off funziona lo stesso....
Sono proprio confuso....
Cla

 register_globals off funziona lo stesso....
Dai un'occhiata qui:
http://www.php.net/manual/en/language.variables.predefined.php

 Con session_destroy...
Ma session destroy posso usarla se l'utente mi clicca "logout"
altrimenti no.
Cmq ho scoperto che esiste un certo trans-sid cos'è?
A me quando gioco con le sessioni non mi crea dei cookies, o almeno non
mi pare :(
Ciao e grazie
Cla

 Cmq ho scoperto che esiste un certo trans-sid cos'è?
Se trans-sid è attivato dal php.ini il sid viene propagato tramite url
automaticamente in caso di impossibilità di settare cookies.

 Però forse non ho capito qual è il tuo problema...
Io ho una sezione protetta del sito.
Voglio che se uno non carica una pagina per 5 minuti si debba riloggare.
Ma se quello esce dal mio sito (magari inserendo l'url di un'altro)
senza cliccare su logout (che corrisponde alla session_destroy) io la
sessione come la distruggo?
Come evito che tornato dopo 15 minuti la sessione valga ancora?
Grazie
Claudio

 Come evito che tornato dopo 15 minuti la sessione valga ancora?
Ti ho già risposto.. lavora sulla durata del cookie di sessione... o via php
ini.. o con ini_set..
Oppure ideati un un controllo che costruisci tu al caricamento della pagina
e che se è passato un tot di tempo dall'ultimo accesso ad una determinata
pagina distrugge la sessione.

 ini.. o con ini_set..
Oki, mo "gioco" un po'.
Cla