|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
[PHP] fare un LOG OUT da una sessione
Come posso fare per uscire da una sessione ???
ho una sessione aperda e ho registrato 2 variabili, <? session_start(); ?> <? session_register("Username"); session_register("Password"); ?> vorrei fare un LOG-OUT e riaprire immediatamente un altra sessione per potere accedere sotto altro nome. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
session_unregister fa il contrario di session_register per una variabile singola, poi c'è la funzione session_unset che fa l'unset di tutte le variabili di sessione.
infine session_destroy, il significato direi che si capisce dal nome ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scusa, ma session_register, session_unregister e session_unset sono utilizzabili solo se le variaibili di sessione vengono dichiarate auto-globali...dalla 4.2.0 questa cosa non avviene più con la configurazione di default di php.ini (bisogna riattivare un'opzione) per motivi di sicurezza...
Quindi da PHP 4.2.0 in poi conviene usare il vettore globale associativo $_SESSION... Per esempio: $_SESSION['username'] = 'pippo'; //dichiara la variabile di sessione username unset($_SESSION['username']); //distrugge la variabile username unset($_SESSION); //elimina tutte le varibili di sessione |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
ecco perche' non mi si sovrascrivono le variabili di sessione che uso io, ma quelle che mi hai detto tu non si mantengono persistenti per tutto il sito, se non passo il SID non restano aperte, mentre con quelle che uso io non serve il SID .......
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi sempre usare session_start...
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
vedi, la cosa che non mi piace di php è che cambiano idea continuamente.
pensa anche a come vengono gestite le variabili passate tramite POST: prima erano variabili globali poi hanno messo HTTP_POST_VARS poi è arrivato $_POST e che palle! va bene che modificando il file di configurazione si riesce ad avere compatibilità con il passato ma è seccante avere uno script che va su uno spazio web e non va su un altro perché hanno due versioni di php differenti. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come è successo per le variabili passate con i metodi POST e GET che non vengono più definite globali...così è successo anche per quelle definite nella sessione... Purtroppo è un pedaggio che si paga per risolvere certi problemi...
Comunque $HTTP_POST_VARS & company sono tutt'ora definite...senza abilitare alcuna opzione di configurazione... Pensa che prima provando ad indovinare una variabile di sessione tramite i parametri passati con POST o GET si poteva saltare persino un'autentificazione... Purtroppo quello della compatibilità è un problema che si deve scontare per garantire la sicurezza... |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comunque con qualche piccolo accorgimento si riesce ad avere la compatibilità...
Ad esempio per avere le variabili di sessione definite globalmente basta fare una cosa del genere: foreach ($_SESSION as $key => $value) { $GLOBALS[$key] = &$_SESSION[$key]; } Poi basta fare qualche sostiture session_register con un'altra parola e sviluppare una funzione con quel nome che semplicemente alloca in $_SESSION ed un alias in $GLOBALS e se a posto... Ovviamente la stessa cosa per session_unregister... |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
Quote:
poi sono d'accordo sulla sicurezza ma mi viene da dire: "non potevano pensarci prima???" |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Chiaro, ma finchè non c'erano le variabili di sessione non si avevano questi problemi... Si ricorreva pesantemente ai cookie e via...
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
cionci, un interprete php freeware, esiste?
ne avevo trovato uno ma non ha mai funzionato; questo per l'esattezza PHP-4.0.2-WIN32 |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Di PHP ce ne dovrebbe essere solo uno ed è free...
www.php.net |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
allora è quello che ho scaricato io
quando è in azione, mi spieghi cosa vedi di diverso nel tuo PC? io vedo una finestra DOS sempre aperta e che attende e non so come avvenga l'intercettazione da parte del programma (server?) di una pagina contenete uno script PHP però, il file che ho scaricato io, zippato, è di soli 900 K |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi scaricare questo: http://www.php.net/~jani/RC/php-4.3.2RC1-Win32.zip
PHP può funzionare come CGI (in quel caso il server web lancia l'eseguibile)...o come SAPI...una DLL che si interfaccia con il server web (molto più veloce della versione CGI)... |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
EasyPHP 1.6 IL MEGLIO!!!!!!!!!!!!!!!!!!!!!!
PHP MySQL Apache PhpMyAdmin autoinstallante e sibito pronto sensa nessun settaggio........ |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Bleah...EasyPHP che spiega, via...
Siamo programmatori, perchè non dovremmo mettere mano ai file di configurazione... Poi se si fa fare tutto ad EasyPHP dopo non si impara niente... Inoltre ogni volta che c'è da aggiornare uno dei programmi con EasyPHP si incasina tutto ![]() |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
beh, al giorno d'oggi non è che ci si può permettere il lusso di imparare proprio tutto oramai questo settore è divenuto alquanto complesso, molte cose quindi, si devono dare per scontate ![]() pensa solo se per scrivere un programma di paint, ti dovresti studiare tutti i formati grafici (TIFF, JPEG etc...) algoritmi di compressione compresi: non finiresti più ![]() |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Lo so, ma se ti trovi un giorno ad installare il solo Apache su una piattaforma per cui EasyPHP non esiste che fai ?!?!!?
Oppure semplicemente se ti trovi ad installare il PHP su un server Apache preesistemente che fai ? Installi EasyPHP e perdi tutta la configurazione di Apache ? Poi EasyPHP può andar bene per una macchina di debug...non certamente su un server di produzione... |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
dai ragazzi mettere su apache su una macchina windows è semplicissimo!
idem aggiungere php... se proprio c'è da documentarsi è per modificare le opzioni di php o quelle di apache, ma non per mettere su un server web con supporto php perché ci vogliono davvero 5 minuti di orologio. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:28.