Applications État-permises se développantes avec PHP

| by John L | November 07, 2004
Rata 1

Applicazioni Dichiarare-permesse di sviluppo con PHP

Quando un utente sta passando in rassegna con un Web site e surfing da un Web page ad un altro, a volte il Web site deve ricordarsi delle azioni (per esempio scelte) realizzate dall'utente. Per esempio, in un Web site che vende DVDs, l'utente passa in rassegna tipicamente attraverso una lista di DVDs e seleziona DVDs specifico per il controllo fuori alla conclusione della sessione di shopping. Il Web site deve ricordarsi del quale DVDs l'utente ha selezionato perché gli articoli selezionati deve essere presentato ancora all'utente quando l'utente verifica. Cioè il Web site deve ricordarsi del dichiarare - cioè gli articoli selezionati - delle attività di lettura rapida dell'utente.

Tuttavia, il HTTP è un protocollo apolide ed è ill-equipped maneggiare dichiara. Un Web site standard del HTML fornisce basicamente le informazioni all'utente e una serie di collegamenti che dirige semplicemente l'utente verso altri Web pagi relativi. Questa natura apolide del HTTP permette che il Web site sia ripiegato attraverso molti assistenti per gli scopi d'equilibratura del carico. Uno svantaggio importante è che mentre passa in rassegna da una pagina ad un altro, il Web site non si ricorda del dichiarare della sessione di lettura rapida. Questa interattività di marca quasi impossibile.

Per aumentare l'interattività, lo sviluppatore può usare la sessione che maneggia le caratteristiche di PHP per aumentare le caratteristiche del HTTP per ricordarsi del dichiarare della sessione di lettura rapida. Sono basicamente 2 sensi che PHP fa questo:
  •  Usando i biscotti
  •  Usando le sessioni

La rata seguente discute come controllare le sessioni usando i biscotti…

Rata 2

Biscotti

I biscotti sono usati per memorizzare le Dichiarare-informazioni nel browser. I Browsers sono permessi continuare a 20 biscotti per ogni dominio ed i valori memorizzati nel biscotto non possono eccedere 4 Kb. Se più di 20 biscotti sono generati dal Web site, solo gli ultimi 20 sono immagazzinati. I biscotti sono soltanto adatti nei casi che non richiedono le comunicazioni complesse di sessione e non sono favoriti da alcuni sviluppatori a causa delle edizioni di segretezza. Ancora, alcuni utenti inabilitano il sostegno i biscotti ai loro browsers.

Ciò che segue è una serie di eventi del assistente-browser tipica che accadono quando un biscotto è usato:
  •  L'assistente sa che deve ricordarsi del dichiarare della sessione di lettura rapida
  •  L'assistente genera un biscotto ed usa il campo dell'intestazione del Regol-Biscotto nella risposta del HTTP per passare il biscotto al browser
  •  Il browser legge il giacimento del biscotto nella risposta del HTTP ed immagazzina il biscotto
  •  Queste informazioni del biscotto sono comunicate lungo le comunicazioni future dell'browser-assistente e possono essere usate negli scritti di PHP come variabile

PHP fornisce una funzione denominata setcookie () per permettere la creazione facile dei biscotti. La sintassi per setcookie è:

setcookie interno (nome della stringa, [stringa val], [expiration_date interno], [percorso della stringa], dominio della stringa, [interno fissare])

I parametri sono:
  •  nome - questo è un parametro obbligatorio ed è usato successivamente identificare il biscotto
  •  il valore - il valore del biscotto - per esempio se il biscotto è usato per immagazzinare il nome dell'utente, il parametro di valore immagazzinerà il nome reale - per esempio John
  •  expiration_date - il corso della vita del biscotto. Dopo questa data, il biscotto espira ed è inutilizzabile
  •  percorso - il percorso si riferisce al URL da cui il biscotto è valido ed ha conceduto
  •  il dominio - di dominio generato il biscotto ed è permesso leggere il contenuto del biscotto
  •  - specifica se il biscotto può essere trasmesso soltanto attraverso un collegamento sicuro - per esempio lo SSL sicuro permette le sessioni

Ciò che segue è un esempio che visualizza all'utente quante volte un Web page specifico è stato visualizzato all'utente. Il copy il codice qui sotto (sia il php che il HTML) in una lima con l'estensione di .php e la verifica fuori. [? php//check se la variabile di $count è stata associata con il cookieif di conteggio (! isset ($count)) {$count = 0;} altrimenti {$count++;}setcookie (“conteggio„, $count, tempo () +600,„/“, "", 0);?][HTML] [testa] [titolo] sessione che maneggia usando i biscotti [/title] [/head] [corpo] questa pagina è stata visualizzata: [? =$count?] periodi. [/body] [/html]

La rata seguente discute come controllare le sessioni usando la sessione di PHP che maneggia le funzioni con i biscotti permessi…

Rata 3

Maneggiamento di sessione di PHP - i biscotti hanno permesso

Invece di memorizzare le informazioni di sessione al browser con l'uso dei biscotti, le informazioni possono preferibilmente essere memorizzate all'assistente nelle lime di sessione. Una lima di sessione è generata ed effettuata per ogni sessione dell'utente. Per esempio, se ci sono tre utenti simultanei che passano in rassegna il Web site, tre lime di sessione saranno generate ed effettuate - una per ogni utente. Le lime di sessione sono cancellate se la sessione è esplicitamente chiusa dallo scritto di PHP o tramite un processo dell'accumulazione dell'immondizia del daemon fornito da PHP. La buona pratica di programmazione richiederebbe esplicitamente le sessioni per essere chiusa nello scritto.

Ciò che segue è una serie di eventi del assistente-browser tipica che accadono quando un maneggiamento di sessione di PHP è usato:
  •  L'assistente sa che deve ricordarsi del dichiarare della sessione di lettura rapida
  •  PHP genera un'identificazione di sssion e genera una lima di sessione per memorizzare le informazioni future secondo le esigenze delle pagine successive
  •  Un biscotto è wih generato l'identificazione di sessione al browser
  •  Questo biscotto che immagazzina l'identificazione di sessione è trasmesso trasparente ed automaticamente all'assistente per tutte le richieste successive all'assistente

Il seguente esempio dimaneggiamento di PHP compie lo stesso risultato dell'esempio precedente del biscotto. Il copy il codice qui sotto (sia il php che il HTML) in una lima con l'estensione di .php e la verifica fuori.

[? php//starts un sessionsession_start (); //informs PHP che conta le informazioni deve ricordarsi di nel fileif di sessione (! session_is_registered (“conteggio„)) {session_register (“conteggio„); $count = 0;}altrimenti {$count++;}$session_id = session_id ();?][HTML] [testa] [titolo] maneggiamento di sessione di PHP - Biscotto-Permesso [/title] [/head] [corpo] l'identificazione corrente di sessione è: [? =$session_id?] Questa pagina è stata visualizzata: [? =$count?] periodi. [/body] [/html]

Un sommario delle funzioni che PHP assicura per il maneggiamento di sessione è:
  •  start_session booleano () - inizializza una sessione
  •  mettere insieme il session_id ([identificazione della stringa]) - restituisce l'identificazione corrente di sessione o specificano l'identificazione di sessione da usare quando la sessione è generata
  •  session_register booleano (nome mixed [, mescolato…]) - variabili dei registri da immagazzinare nella lima di sessione. Ogni parametro ha passato nella funzione è una variabile separata
  •  booleano session_is_registered (variable_name della stringa) - controlli se una variabile precedentemente è stata registrata per essere immagazzinata nella lima di sessione
  •  session_unregister (varriable_name) della stringa - unregisters una variabile dalla lima di sessione. Le variabili Unregistered non sono più valide per riferimento nella sessione.
  •  session_unset () - unsets tutte le variabili di sessione. È importante notare che tutte le variabili rimangono registrate.
  •  session_destroy booleano () - distrugge la sessione. Ciò è opposto della funzione di start_session.

La rata seguente discute come controllare le sessioni usando la sessione di PHP che maneggia le funzioni quando i biscotti sono disabled…

Rata 4

Maneggiamento di sessione di PHP - senza biscotti

Se i biscotti sono disabled al browser, il suddetto esempio non può funzionare. Ciò è perché anche se la lima di sessione che immagazzina tutte le variabili è mantenuta all'assistente, un biscotto ancora è necessario al browser per immagazzinare l'identificazione di sessione che è usata per identificare la sessione e la relativa lima collegata di sessione. Il senso più comune intorno a questo sarebbe passare esplicitamente l'identificazione di sessione di nuovo all'assistente dal browser come parametro di domanda nel URL.

Per esempio, lo scritto di PHP genera le richieste successive alla chiamata di start_session nella seguente disposizione:

http://www.yourhost.com/yourphpfile.php?PHPSESSID= [identificazione reale di sessione]

Il seguenti sono brani che illustrano la discussione:

Manualmente costruire il URL:

$url = “http://www.yoursite.com/yourphppage.php?PHPSESSID=„. session_id ();
[un href= " [? =$url?]“] Testo dell'ancoraggio [/a]

Costruzione del URL usando SID:

[un href= " http://www.yoursite.com/yourphppage.php? [? =SID?]“] Testo dell'ancoraggio [/a]

Article Source: http://www.articleset.com



About the Author

John L is the webmaster of http://www.bimmercenter.com..

daboss@bimmercenter.com » Read more articles by John L
You are welcome to publish or reprint this article free of charge, provided: