<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Il blog di webEngine &#187; durata sessioni</title>
	<atom:link href="http://blog.webeng.it/tag/durata-sessioni/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.webeng.it</link>
	<description>Blog dedicato alle tecnologie Web e alle notizie dal mondo della rete...</description>
	<lastBuildDate>Thu, 17 Dec 2009 13:07:15 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Stabilire la durata delle sessioni cookie in PHP</title>
		<link>http://blog.webeng.it/2008/11/28/stabilire-la-durata-delle-sessioni-cookie-in-php-session-gc_maxlifetime-e-lifetime/</link>
		<comments>http://blog.webeng.it/2008/11/28/stabilire-la-durata-delle-sessioni-cookie-in-php-session-gc_maxlifetime-e-lifetime/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 14:35:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Articoli Generici]]></category>
		<category><![CDATA[Sviluppo Web]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[durata sessioni]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.webeng.it/?p=109</guid>
		<description><![CDATA[Quando stiamo creando un sito in PHP,  che richiede autenticazione o in ogni caso una gestione delle sessioni, è sempre importante stabilire la durata di una sessione, perché la cosa più fastidiosa è trovarsi buttati fuori da un sistema, solo perché ci si è allontatati dalla postazione oppure si è ricevuta una telefontata.


Dannazione!
In questo articolo spiegherò come [...]]]></description>
			<content:encoded><![CDATA[<p>Quando stiamo creando un sito in PHP,  che richiede autenticazione o in ogni caso una gestione delle sessioni, è sempre importante stabilire la durata di una sessione, perché la cosa più fastidiosa è trovarsi buttati fuori da un sistema, solo perché ci si è allontatati dalla postazione oppure si è ricevuta una telefontata.</p>
<p><span id="more-109"></span></p>
<div class="wp-caption aligncenter" style="width: 383px;"><img title="Sessione scaduta" src="http://i237.photobucket.com/albums/ff314/timendum/sessione-scaduta.png" alt="Sessione scaduta... dannazione!" width="373" height="125" /></div>
<p class="wp-caption-text">Dannazione!</p>
<p>In questo articolo spiegherò come impostare i giusti settaggi di PHP, preferibilmente nel file <em>/etc/php5/cgi/php.ini</em> oppure tramite il comando <a title="Guida ufficiale" href="http://it.php.net/ini_set"><span style="color: #a00000;">ini_set</span></a>.</p>
<p>Il primo settaggio da impostare è <strong><span class="norm"><span class="norm">session.cookie_lifetime</span></span></strong>, che specifica QUANTO un cookie deve durare sulla macchina del visitatore, misurato in secondi; di default è impostato a 0, che non significa per sempre, ma piuttosto fino a quando il browser non viene chiuso. Dei valori di riferimento sono: 3600 = 1 ora; 28800 = 8 ore; 86400 = un giorno.</p>
<p>Per impostare questo parametro, o si edita il file <em>etc/php5/cgi/php.ini</em> oppure si utilizza la funzione, se abilitata, <em>ini_set(’session.cookie_lifetime’, 3600)</em>.</p>
<p>Fatto questo, passiamo a <strong>session.gc_maxlifetime</strong>, che stabilisce quanto una sessione dura sul server, cioè dopo quanti secondi il nostro fido PHP butta via una sessione che non ha aggiornato dati. Il paramentro è più subdolo di quanto possa sembrare, perché una sessione creata alle 8:00, viene considerata vecchia di 10 minuti già alle 8:10 anche se l’utente continua a visitare il sito, se nessun dato dell’array <em>$SESSION</em> viene aggiornato, quindi sta a te stabilire da quanto considerare una sessione scaduta, se dalla sua creazione/ultimo aggiornamento <span style="text-decoration: underline;">reale</span>, oppure se dall’ultima visita, in questo caso, ad esempio incremetare una variabile dummy ad ogni pagina, con il comando <em>$SESSION['keepailve']++</em> dopo esserti ricordato di inizializzare <em>keepalive</em> alla creazione della sessione.</p>
<p>In ogni caso, questo parametro non andrà MAI oltre quello precedente, quindi se alzi <em>maxlifetime</em>, devi ricordarti di fare altrettanto con <em>cookie_lifetime</em>.</p>
<p>Ora veniamo al bello, da solo il parametro <em>maxlifetime</em> non basta, perché PHP non passa ogni istante, per fortuna del tuo server, a controllare quali sessioni buttare, altrimenti il carico diventa eccessivo, piuttosto ha una data probabilità di farlo ad ogni pagina generata. I parametri sono <strong>session.gc_probability</strong> e <strong>session.gc_divisor</strong>. Immaginiamo di averli impostati a:</p>
<p>session.gc_probability = 7 session.gc_divisor = 80</p>
<p>Bene, allora per ogni pagina visitata, PHP controllerà (o meglio lo farà il Garbage Collector, ma questo è un dettaglio) tutte le sessioni valide, con una probabilità di 7 su 80 = 7/80 = 0.0875</p>
<p>Io ti consiglio di lasciare le impostazioni di base, cioè rispettivamente 1 e 100, ma dipende solamente dal server e dalle pageviews del tuo sito.</p>
<p>L&#8217;articolo è tratto da: <a href="http://www.timendum.net/blog/201/prolungare-o-accorciare-le-durate-delle-sessioni-cookie-con-php-session-gc_maxlifetime-e-lifetime/">http://www.timendum.net/blog/201/prolungare-o-accorciare-le-durate-delle-sessioni-cookie-con-php-session-gc_maxlifetime-e-lifetime/</a></p>
<p>Articolo tratto da : <a href="http://www.timendum.net/blog/201/prolungare-o-accorciare-le-durate-delle-sessioni-cookie-con-php-session-gc_maxlifetime-e-lifetime/" target="_blank">http://www.timendum.net/blog/201/prolungare-o-accorciare-le-durate-delle-sessioni-cookie-con-php-session-gc_maxlifetime-e-lifetime/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.webeng.it/2008/11/28/stabilire-la-durata-delle-sessioni-cookie-in-php-session-gc_maxlifetime-e-lifetime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
