Christian Castelli
a- a+

Sessione e gestione delle applicazioni (Le strutture)

SESSIONI E GESTIONE DELLE APPLICAZIONI

Le strutture

Una struttura in ColdFusion è un tipo di dato che può esser usato per collezionare dati. ColdFusion fornisce molte funzioni per rendere agevole la manipolazione delle strutture. Alcune di queste funzioni sono rappresentate nella tabella sottostante:

 

Funzioni delle strutture

 

Funzione

Descrizione

IsStruct ritorna true se la variabile specificata rappresenta una struttura.
StructNew crea una nuova struttura.
StructClear rimuove tutti i dati dalla struttura specificata.
StructDelete rimuove l'elemento specificato dalla struttura.
StructFind ritorna il valore associato ad una chiave specifica nella struttura specificata.

L'esempio sottostante crea una struttura chiamata person, vi aggiunge delle proprietà, cancella una proprietà e poi esegue un'iterazione in una sottostruttura.

Es.1: Structure.cfm

<html>
  <head>
  <title>Le strutture</title>
  </head>
  <body>
  <cfset person = StructNew()>
  <cfset person.firstName = "Paul">
  <cfset person.lastName = "McCartney">
  <cfset person.age = 61>
  <cfset person.talents.sing = True>
  <cfset person.talents.playsGuitar = True>
  <cfset person.talents.bungyJumps = False>
    <cfset StructDelete(SESSION, "username")>
      <cfoutput><p>Structure Elements: #StructCount(person)#</p></cfoutput>
  <ul>
  <cfloop collection="#person.talents#" item="talent">
   <cfoutput><li>#talent#: #person.talents[talent]#</li></cfoutput>
  </cfloop>
  </ul>
  </body>  
</html>

 

<a href="iframe_CF_session1.html" title="Vedi esempio">Vedi codice</a>;

 

La visibilità delle sessioni, delle applicazioni e delle variabili lato client sono tutte disponibili come strutture ColdFusion, il che significa che possono essere manipolate usando le funzioni delle strutture.


Esempi di sessioni

Es.2: session1.cfm. Questa pagina setta una variabile di sessione e la stampa in output.

<cfset SESSION.SessVar = "Hello world!"><html>  <head>  <title>Pagina di sessione 1</title>  </head>  <body>  Il contenuto di SESSION.SessVar è   <cfoutput>#SESSION.SessVar#</cfoutput>.    <a href="Session2.cfm">Avanti</a>   </body>  </html>

Es. 3: session2.cfm. Questa pagina stampa in output la stessa variabile di sessione per poi cancellarla con StructDelete().

<html>  <head>  <title>Pagina di sessione 2</title>  </head>    <body>  Il contenuto di SESSION.SessVar è ancora    <cfoutput>#SESSION.SessVar#</cfoutput>.  <cfset StructDelete(Session,"SessVar")>    <a href="Session3.cfm">Avanti</a>  </body>  </html>

Es. 4: session3.cfm. Questa pagina tenta di leggere la variabile di sessione cancellata fallendo. Viene stampato un errore del tipo "Element SESSVAR is undefined in SESSION."

<html>  <head>  <title>Pagina di sessione 3</title>  </head>    <body>Il contenuto di SESSION.SessVar non è
    più <cfoutput>#SESSION.SessVar#</cfoutput>.    </body></html>


Cookies

I cookies sono piccoli file di testo che risiedono sulla macchina client. Le pagine web con i permessi corretti possono leggere e scrivere su tali cookies. Vengono generalmente usati per tracciare le informazioni riguardo ad un utente mentre naviga nel sito.

In ColdFusion, i cookies vengono impostati con il tag <cfcookie>, che possiede svariati attributi. Eccone una lista:

  • name: il nome del cookie (obbligatorio);
  • value: il valore del cookie;
  • expires: la data di scandeza del cookie (se manca, il cookie scadrà quando il browser verrà chiuso);
  • secure: un flag che indica se il cookie dovrebbe esser letto solo attraverso connessioni protette (https);
  • path: il percorso alla directory sul server per leggere i cookie;
  • domain: il nome del dominio che può leggere il cookie.

Il seguente codice imposterà un cookie che scadrà fra una settimana:

<cfcookie name="firstname" value="Paul" expires="7">

Il seguente codice imposterà un cookie che scadrà il 31 dicembre 2008:

<cfcookie name="firstname" value="Paul" expires="12/31/08">

Il seguente codice imposterà un cookie che non scadrà mai:

<cfcookie name="firstname" value="Paul" expires="never">

Per cancellare un cookie, è sufficiente settare la data di scandeza a now():

<cfcookie name="firstname" value="Paul" expires="now">


Conclusioni

La gestione delle sessioni è un aspetto chiave necessario per creare applicazioni web complete. In questa lezione avete imparato a lavorare con le variabili di sessione e di applicazione. Inoltre avete imparato come usare il tag <cfapplication> e come sfruttare le strutture.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Graziano
Hai qualche domanda da fare?