<?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>ManCanDo - PhP, MySQL, DIY, porady i triki &#187; &#187; session</title>
	<atom:link href="http://www.mancando.pl/tag/session/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mancando.pl</link>
	<description>Co kupować a czego nie? Ciekawostki z zakresu programowania w PHP. Sztuczki i kruczki MySQL. Zagadnienia z zakresu grafiki komputerowej. Opisy ciekawych rzeczy, które można wykonać samodzielnie.</description>
	<lastBuildDate>Thu, 05 Dec 2013 18:50:19 +0000</lastBuildDate>
	<language>pl-PL</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Duża liczba użytkowników = krótki czas trwania sesji</title>
		<link>http://www.mancando.pl/duza-liczba-uzytkownikow-krotki-czas-trwania-sesji/</link>
		<comments>http://www.mancando.pl/duza-liczba-uzytkownikow-krotki-czas-trwania-sesji/#comments</comments>
		<pubDate>Thu, 24 Jan 2013 15:01:29 +0000</pubDate>
		<dc:creator><![CDATA[Piotrek]]></dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://mancando.pl/?p=38</guid>
		<description><![CDATA[Jednym z bardziej oczywistych sposobów na obsługę sytemu autoryzacji w PHP jest korzystanie ze zmiennych sesyjnych. Jest to w miarę proste i eleganckie rozwiązanie. Schody zaczynają się jednak w momencie, gdy liczba użytkowników rozbudowanego serwisu zwiększa się do tak dużej &#8230; <a href="http://www.mancando.pl/duza-liczba-uzytkownikow-krotki-czas-trwania-sesji/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[
<!-- Easy Plugin for AdSense V7.51 -->
<!-- [leadin: 2 urCount: 2 urMax: 0] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:20px 0px;"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- mancando-poziomy -->
<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-2234288553315702"
     data-ad-slot="2233930472"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<!-- Easy Plugin for AdSense V7.51 -->
<p><img class="alignright size-full wp-image-50" style="border: 0px none;" alt="komputerek_php" src="http://mancando.pl/wp-content/uploads/2013/01/komputerek_php.png" width="70" height="73" />Jednym z bardziej oczywistych sposobów na obsługę sytemu autoryzacji w PHP jest korzystanie ze zmiennych sesyjnych. Jest to w miarę proste i eleganckie rozwiązanie. Schody zaczynają się jednak w momencie, gdy liczba użytkowników rozbudowanego serwisu zwiększa się do tak dużej liczby, że dane utrzymywane w zmiennych sesyjnych będą zajmować maksymalne ilości pamięci zapisane w konfiguracji serwera. W takich sytuacjach długość trwania sesji ulegnie drastycznemu skróceniu a użytkownicy będą notorycznie wylogowywani z serwisu.</p>
<p>Wyczerpywanie limitu pamięci spowoduje, że zwiększanie wartości <code>session.gc_maxlifetime </code> w ini_set nie będzie dawało żadnych wymiernych korzyści. <code>Garbage collection</code> i tak notorycznie będzie niszczył najstarsze nieaktywne sesje. Ciągła rotacja powracających wylogowanych użytkowników będzie powodowała krótkie trwanie pozostałych sesji.<br />
<span id="more-38"></span><br />
W niektórych przypadkach można dokonać optymalizacji kodu źródłowego witryny, przez rezygnację z utrzymywania niektórych danych jako zmienne sesyjne. Będzie to jednak dosyć trudne do wykonania w przypadku obszernych istniejących już projektów. W takich przypadkach modyfikacja kodu będzie pracochłonna</p>
<p>Oczywiście można zwiększyć zasoby fizyczne serwera, lub też zmienić jego konfigurację. Jest to możliwe jedynie w sytuacjach, gdy masz pełną kontrolę nad serwerem. W większości wypadków, rozpatrując typowy hosting, rozwiązania te nie są możliwe do wykonania. W takich sytuacjach najlepszym i najprostszym sposobem będzie przeniesienie zawartości sesji z pamięci serwera do plików.</p>
<p>Wykonanie tej operacji jest stosunkowo proste. Można to zrobić na kilka sposobów. Dwa najprostsze to:<br />
umieszczenie w kodzie PHP następującego polecenia:<br />
<code>session_save_path('/sciezka/nazwa_katalogu');</code></p>
<p>lub umieszczenie w pliku .htaccess następującego wpisu:<br />
<code>php_value session.save_path /sciezka/nazwa_katalogu/</code></p>
<p>Same zmiany po stronie użytkownika witryny nie będą zauważalne (oczywistym poza wydłużeniem trwania sesji). Dodatkowymi korzyściami jakie możesz wyciągnąć z tych zmian to kontrola nad zalogowanymi użytkownikami. W katalogu, który przeznaczyłeś do przechowywania zawartości sesji, znajdziesz pliki, których nazwy wyglądają mniej więcej w ten sposób:</p>
<p><code>sess_004a0196f6d57c622454e5f0cb19678b</code></p>
<p>Część nazwy pliku po znaku &#8222;_&#8221; to identyfikator sesji. We wnętrzu pliku znajdziesz zserializowaną zawartość tej sesji. Dzięki w miarę prostej aplikacji napisanej w PHP można zbudować raport, który pozwoli na sprawdzenie którzy użytkownicy mają aktywne sesje, oraz podejrzenie zawartości ich sesji. Skasowanie pliku sesji jest równoznaczne z wylogowaniem użytkownika z witryny (zniszczeniem jego sesji). Pozwala to w łatwy sposób wylogować, pojedynczego użytkownika, grupę lub wszystkich użytkowników danego serwisu.</p>
<p>Dzięki znajomości identyfikatora sesji użytkownika możliwe jest również wykonanie operacji podszycia się pod dane zalogowane konto. Wystarczy skorzystać choćby z firefoxa wzbogaconego o dodatek firebug, który pozwala edytować wartości przechowywanych w cookies. Ta korzyść to jednak bardziej ciekawostka niż przydatna właściwość <img src="http://www.mancando.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> (być może jednak są osoby które skorzystają z tej opcji).</p>
<p>Osobiście korzystam z utrzymywania sesji w plikach, od ponad roku i jak na razie nie spotkałem się z sytuacją, aby rozwiązanie to miało jakiś niekorzystny wpływ na działanie serwisu. Od tamtej pory nie spotkałem się z uwagami co do działania sesji oraz długości ich trwania. Sesje trwają dokładnie tyle na ile ustawiony jest parametr session.gc_maxlifetime. Z czystym sumieniem mogę polecić to rozwiązanie :).</p>

<!-- Easy Plugin for AdSense V7.51 -->
<!-- [leadout: 3 urCount: 3 urMax: 0] -->
<div class="ezAdsense adsense adsense-leadout" style="text-align:center;margin:12px;"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- mancando-poziomy -->
<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-2234288553315702"
     data-ad-slot="2233930472"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<!-- Easy Plugin for AdSense V7.51 -->
]]></content:encoded>
			<wfw:commentRss>http://www.mancando.pl/duza-liczba-uzytkownikow-krotki-czas-trwania-sesji/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
