<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Podtrzymanie sesji</title>
	<atom:link href="http://athlan.pl/podtrzymanie-sesji/feed/" rel="self" type="application/rss+xml" />
	<link>http://athlan.pl/podtrzymanie-sesji/</link>
	<description>Napisać kod zrozumiały dla komputera potrafi byle głupek. Dobrzy programiści tworzą kod zrozumiały dla człowieka...</description>
	<lastBuildDate>Mon, 05 Mar 2012 11:45:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Grzegorz</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6435</link>
		<dc:creator>Grzegorz</dc:creator>
		<pubDate>Wed, 28 Dec 2011 10:23:16 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6435</guid>
		<description>Na początek - spodobało mi się dodawanie komentarza poprzez zaznaczanie box-a :) Niezły sposób a implementowałem już wiele z często niezadowalającym skutkiem.

Czytam o Waszych różnych pomysłach/sposobach zabezpieczania przed niewygaśnięciem sesji. Testuję właśnie ten z ajaxem i zobaczę czy za godzinkę mnie nie wywali.
Myślałem, że to będzie proste jak z ciasteczkami - jedna linijka z informacją o długości &#039;żywotności&#039; sesji a tu takie zabiegi i propozycje (szczególnie ciekawa i niezrozumiała jest dla mnie propozycja eleganckiego rozwiązania mego przedmówcy).</description>
		<content:encoded><![CDATA[<p>Na początek &#8211; spodobało mi się dodawanie komentarza poprzez zaznaczanie box-a :) Niezły sposób a implementowałem już wiele z często niezadowalającym skutkiem.</p>
<p>Czytam o Waszych różnych pomysłach/sposobach zabezpieczania przed niewygaśnięciem sesji. Testuję właśnie ten z ajaxem i zobaczę czy za godzinkę mnie nie wywali.<br />
Myślałem, że to będzie proste jak z ciasteczkami &#8211; jedna linijka z informacją o długości &#8216;żywotności&#8217; sesji a tu takie zabiegi i propozycje (szczególnie ciekawa i niezrozumiała jest dla mnie propozycja eleganckiego rozwiązania mego przedmówcy).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marek</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6363</link>
		<dc:creator>Marek</dc:creator>
		<pubDate>Wed, 24 Nov 2010 23:06:08 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6363</guid>
		<description>Dzięki za podzielenie się spostrzeżeniami na ten temat. 
Jest jeszcze jeden sposób, cykliczne żądanie z poziomu JS o obrazek, gdzie skrypt php po wywołaniu session_start() tworzy obrazek 1x1 i wysyła go jako image/jpeg.

Jak dla mnie najbardziej eleganckie rozwiązanie.</description>
		<content:encoded><![CDATA[<p>Dzięki za podzielenie się spostrzeżeniami na ten temat.<br />
Jest jeszcze jeden sposób, cykliczne żądanie z poziomu JS o obrazek, gdzie skrypt php po wywołaniu session_start() tworzy obrazek 1&#215;1 i wysyła go jako image/jpeg.</p>
<p>Jak dla mnie najbardziej eleganckie rozwiązanie.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bostaf</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6338</link>
		<dc:creator>bostaf</dc:creator>
		<pubDate>Tue, 20 Apr 2010 05:52:53 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6338</guid>
		<description>No rzeczywiście. Wcześniejsze próby przeprowadzałem na istniejącej aplikacji a teraz zrobiłem dwa gołe pliki dokładnie wg Twojego przykładu i oba identyfikatory były takie same.
Żeby hulało w tej aplikacji, o której wspomniałem, dodałem przekazywanie session_id do ping.php w URLu, przez GET (oIframe.src=&#039;./ping.php?sesja=&quot;.session_id().&quot;&#039;;), a w ping.php dodałem na samym początku ustawianie identyfikatora session_id($_GET[&quot;sesja&quot;]). Działa elegancko :)
Dzięki!</description>
		<content:encoded><![CDATA[<p>No rzeczywiście. Wcześniejsze próby przeprowadzałem na istniejącej aplikacji a teraz zrobiłem dwa gołe pliki dokładnie wg Twojego przykładu i oba identyfikatory były takie same.<br />
Żeby hulało w tej aplikacji, o której wspomniałem, dodałem przekazywanie session_id do ping.php w URLu, przez GET (oIframe.src=&#8217;./ping.php?sesja=&#8221;.session_id().&#8221;&#8216;;), a w ping.php dodałem na samym początku ustawianie identyfikatora session_id($_GET["sesja"]). Działa elegancko :)<br />
Dzięki!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Athlan</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6337</link>
		<dc:creator>Athlan</dc:creator>
		<pubDate>Fri, 16 Apr 2010 13:20:05 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6337</guid>
		<description>Obie sesje winny być takie same w każdym przypadku. Masz jakiś problem z przesyłaniem Cookies lub PHPSESSID w adresie. Przykłady testowane, jednego z nich (ajaxa) używam praktycznie w każdym projekcie.</description>
		<content:encoded><![CDATA[<p>Obie sesje winny być takie same w każdym przypadku. Masz jakiś problem z przesyłaniem Cookies lub PHPSESSID w adresie. Przykłady testowane, jednego z nich (ajaxa) używam praktycznie w każdym projekcie.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bostaf</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6335</link>
		<dc:creator>bostaf</dc:creator>
		<pubDate>Fri, 16 Apr 2010 11:20:20 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6335</guid>
		<description>Sprawdziłem przykład z iframe. Nie zadziałał :(

Pierwsze co mi przyszło do głowy, to że sesja wywoływana przez główny skrypt ma inny identyfikator niż sesja wywoływana przez ping.php. Sprawdziłem to - wstawiłem do skryptu głównego echo z identyfikatorem sesji i do ping.php alert js też z identyfikatorem - były różne :/

Takie podtrzymanie sesji nie ma więc prawa funkcjonować.

Sprawdzałem przykład z iframe, ale podejrzewam, że z ajaxem będzie dokładnie tak samo, prawda?</description>
		<content:encoded><![CDATA[<p>Sprawdziłem przykład z iframe. Nie zadziałał :(</p>
<p>Pierwsze co mi przyszło do głowy, to że sesja wywoływana przez główny skrypt ma inny identyfikator niż sesja wywoływana przez ping.php. Sprawdziłem to &#8211; wstawiłem do skryptu głównego echo z identyfikatorem sesji i do ping.php alert js też z identyfikatorem &#8211; były różne :/</p>
<p>Takie podtrzymanie sesji nie ma więc prawa funkcjonować.</p>
<p>Sprawdzałem przykład z iframe, ale podejrzewam, że z ajaxem będzie dokładnie tak samo, prawda?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: megawebmaster</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6137</link>
		<dc:creator>megawebmaster</dc:creator>
		<pubDate>Tue, 30 Dec 2008 19:45:12 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6137</guid>
		<description>Tak, ale przesyłanie SID w URI jest niebezpieczne ze względu na stosunkowo łatwą możliwość skradnięcia sesji. Co prawda pola HIDDEN również można dołożyć/zmienić ale trzeba o nich wiedzieć, a dodatkowo wiedzieć, że np. mają działać tylko po wygaśnięciu ciasteczka. Dużo lepsze zabezpieczenie.</description>
		<content:encoded><![CDATA[<p>Tak, ale przesyłanie SID w URI jest niebezpieczne ze względu na stosunkowo łatwą możliwość skradnięcia sesji. Co prawda pola HIDDEN również można dołożyć/zmienić ale trzeba o nich wiedzieć, a dodatkowo wiedzieć, że np. mają działać tylko po wygaśnięciu ciasteczka. Dużo lepsze zabezpieczenie.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tiraeth</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6130</link>
		<dc:creator>tiraeth</dc:creator>
		<pubDate>Fri, 26 Dec 2008 18:56:14 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6130</guid>
		<description>Podajesz przykład z formularzem. Rozwiązanie jest jeszcze prostsze niż to, co napisałeś. Dodatkowe pole HIDDEN z wartością identyfikatora sesji - gdy wygasa nam ciasteczko.

A co z garbage colletion? Prosta sprawa. Nie usuwam sesji młodszych niż 24 godziny, a czasem - gdy sesja powinna być aktywna np. 3-7 dni - nawet dłużej. Aktywność sesji to zupełnie inna sprawa. Poza tym nie widzę problemu, gdy nagle wygasa mi sesja, a ja byłem w trakcie pisania czegoś i chcę to teraz opublikować. Pojawia mi się formularz logowania, wypełniam, a dane i tak lecą np. do bazy danych. Aczkolwiek sposób z umieszczeniem identyfikatora sesji w formularzu jest najlepszy, tak przynajmniej uważam. Cookie może wygasnąć, ale aplikacja wie, że warto sprawdzić pola formularza - może tam ID siedzi. Dodatkowo strona, z której przyszedł, musi się zgadzać z tym, co ustawię.

Przekazywanie SID przez adres dodatkowo upraszcza sprawę. Wróć do zdania o aktywności i przetrzymywaniu danych sesyjnych, to zrozumiesz.</description>
		<content:encoded><![CDATA[<p>Podajesz przykład z formularzem. Rozwiązanie jest jeszcze prostsze niż to, co napisałeś. Dodatkowe pole HIDDEN z wartością identyfikatora sesji &#8211; gdy wygasa nam ciasteczko.</p>
<p>A co z garbage colletion? Prosta sprawa. Nie usuwam sesji młodszych niż 24 godziny, a czasem &#8211; gdy sesja powinna być aktywna np. 3-7 dni &#8211; nawet dłużej. Aktywność sesji to zupełnie inna sprawa. Poza tym nie widzę problemu, gdy nagle wygasa mi sesja, a ja byłem w trakcie pisania czegoś i chcę to teraz opublikować. Pojawia mi się formularz logowania, wypełniam, a dane i tak lecą np. do bazy danych. Aczkolwiek sposób z umieszczeniem identyfikatora sesji w formularzu jest najlepszy, tak przynajmniej uważam. Cookie może wygasnąć, ale aplikacja wie, że warto sprawdzić pola formularza &#8211; może tam ID siedzi. Dodatkowo strona, z której przyszedł, musi się zgadzać z tym, co ustawię.</p>
<p>Przekazywanie SID przez adres dodatkowo upraszcza sprawę. Wróć do zdania o aktywności i przetrzymywaniu danych sesyjnych, to zrozumiesz.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Athlan</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6129</link>
		<dc:creator>Athlan</dc:creator>
		<pubDate>Fri, 26 Dec 2008 18:27:17 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6129</guid>
		<description>@Istalacar, dzięki za wypowiedź. Co do wydłużenia czasu żywotności ciasteczka, a zarazem plików na serwerze - wolałbym tego uniknąć. Przyczyny są jasne tylko w przypadku większej liczby userów on-line lub portalu, który ma służyć: wejdź, zobacz, wyjdź. Wówczas kumulacja plików na serwerze byłaby dość niebezpieczna.

Jeżeli nie akceptujesz iframe, co za problem połączyć oba sposoby. I to nie jest głupi pomysł, chyba zastosuję, sprawdzę jak się przyjmuje i ewentualnie opublikuję.

Odnośnie monitorowania formularzy - problem gubienia się sesji nie tyczy się tylko formularzy, ale statycznego przeglądania strony również. Dlatego wolałbym na sztywno wysłać żądanie http o przedłużenie ciasteczka.

Póki co w poście pojawił się &lt;a href=&quot;http://athlan.pl/code/PingAdvajax&quot; rel=&quot;nofollow&quot;&gt;przykład z advajax&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>@Istalacar, dzięki za wypowiedź. Co do wydłużenia czasu żywotności ciasteczka, a zarazem plików na serwerze &#8211; wolałbym tego uniknąć. Przyczyny są jasne tylko w przypadku większej liczby userów on-line lub portalu, który ma służyć: wejdź, zobacz, wyjdź. Wówczas kumulacja plików na serwerze byłaby dość niebezpieczna.</p>
<p>Jeżeli nie akceptujesz iframe, co za problem połączyć oba sposoby. I to nie jest głupi pomysł, chyba zastosuję, sprawdzę jak się przyjmuje i ewentualnie opublikuję.</p>
<p>Odnośnie monitorowania formularzy &#8211; problem gubienia się sesji nie tyczy się tylko formularzy, ale statycznego przeglądania strony również. Dlatego wolałbym na sztywno wysłać żądanie http o przedłużenie ciasteczka.</p>
<p>Póki co w poście pojawił się <a href="http://athlan.pl/code/PingAdvajax" rel="nofollow">przykład z advajax</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Istalacar</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6128</link>
		<dc:creator>Istalacar</dc:creator>
		<pubDate>Fri, 26 Dec 2008 17:55:36 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6128</guid>
		<description>Pomimo, że napisałeś, że można się czepiać - to jako przykład podam siebie - używam ff z noscriptem - blokuje wszystkie JS, ewentualnie gdy potrzebuję - mogę je odblokować, ale domyślnie blokuję też ramki, a odblokowuje je jedynie wtedy gdy je widzę i akurat tego potrzebuję - tym sposobem JS jak najbardziej spełni swoje zadanie, a ukryta ramka nie.
Nie wiem czemu zrezygnowałeś tak łatwo z JS - własna funkcja do ajaxa to parenaście linijek które się po prostu kopiuje np. z poprzedniego projektu, ewentualnie można użyć biblioteki - linijek jeszcze mniej.
Bezpieczeństwo - głównym powodem dla którego sesje wygasają jest to żeby ktoś niepowołany nie dostał dostępu do strony - jeśli chcesz by użytkownik mógł dłużej działać to może po prostu zamiast na godzinę ustawić długość sesji na dzień.
Zaraz mi ktoś powie, że jeśli by użyć JS to przecież on robi to samo co iframe, owszem, dlatego też zwykłe regenerowanie ciasteczek mija się z celem, ale jeśli wziąć pod uwagę to że jest to JS, to możemy zauważyć że skrypt który sprawdzi czy coś się np. textarea zmieniło w przeciągu ostatniej minuty i wtedy ewentualnie via http poprosić o zregenerowanie ciasteczka, w przeciwnym razie pozwolić sesji umrzeć.</description>
		<content:encoded><![CDATA[<p>Pomimo, że napisałeś, że można się czepiać &#8211; to jako przykład podam siebie &#8211; używam ff z noscriptem &#8211; blokuje wszystkie JS, ewentualnie gdy potrzebuję &#8211; mogę je odblokować, ale domyślnie blokuję też ramki, a odblokowuje je jedynie wtedy gdy je widzę i akurat tego potrzebuję &#8211; tym sposobem JS jak najbardziej spełni swoje zadanie, a ukryta ramka nie.<br />
Nie wiem czemu zrezygnowałeś tak łatwo z JS &#8211; własna funkcja do ajaxa to parenaście linijek które się po prostu kopiuje np. z poprzedniego projektu, ewentualnie można użyć biblioteki &#8211; linijek jeszcze mniej.<br />
Bezpieczeństwo &#8211; głównym powodem dla którego sesje wygasają jest to żeby ktoś niepowołany nie dostał dostępu do strony &#8211; jeśli chcesz by użytkownik mógł dłużej działać to może po prostu zamiast na godzinę ustawić długość sesji na dzień.<br />
Zaraz mi ktoś powie, że jeśli by użyć JS to przecież on robi to samo co iframe, owszem, dlatego też zwykłe regenerowanie ciasteczek mija się z celem, ale jeśli wziąć pod uwagę to że jest to JS, to możemy zauważyć że skrypt który sprawdzi czy coś się np. textarea zmieniło w przeciągu ostatniej minuty i wtedy ewentualnie via http poprosić o zregenerowanie ciasteczka, w przeciwnym razie pozwolić sesji umrzeć.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bulawa</title>
		<link>http://athlan.pl/podtrzymanie-sesji/comment-page-1/#comment-6127</link>
		<dc:creator>Bulawa</dc:creator>
		<pubDate>Fri, 26 Dec 2008 16:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://athlan.pl/?p=159#comment-6127</guid>
		<description>Widzę że zaczałeś regularnie blogować, i to z dosyc dobrym skutkiem - tematy b.ciekawe.
Mam nadzieje że nadal będziesz kontynuował.

Czekam na następny wpis o PHP;)

Pozdrawiam.</description>
		<content:encoded><![CDATA[<p>Widzę że zaczałeś regularnie blogować, i to z dosyc dobrym skutkiem &#8211; tematy b.ciekawe.<br />
Mam nadzieje że nadal będziesz kontynuował.</p>
<p>Czekam na następny wpis o PHP;)</p>
<p>Pozdrawiam.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
