Geniální session v PHP Skyluke

Navigace:SkylukeZápisník ⇒ Geniální session v PHP

Geniální session v PHP

Geniální session v PHP Před nedávnem jsem v době psaní příspěvku na tento blog dostal neuvěřitelnou chuť u
php on session destroy, session destroy, timeout pred reloadem stranky, php refresh session timeout, php session, get session id php, php načtení session_destroy, php reload, session php, nacteni nove session id,

Geniální session v PHP

Před nedávnem jsem v době psaní příspěvku na tento blog dostal neuvěřitelnou chuť udělat si horkou čokoládu. Tak jsem pohodlně zašel do kuchyňky, připravil si čokoládu a cestou k počítači mě zdrželo nové číslo počítačového magazínu. Nu což blog chvilku počká, nebo ne?

Po přibližně půl hodině jsem klidně usedl odpočatý k svému počítači, dopsal příspěvek, kliknul na tlačítko přidat a ... Ano hádáte správně, systém mě automaticky odhlásil a můj příspěvek skončil v propadlišti dějin a již se jej nikdy nedočkáte.

Kéž bych tento problém měl pouze sám, bohužel jej mají i jiní, třeba naši klienti, kteří si zajdou na oběd do luxusní restaurace a po návratu je systém automaticky odhlásí. Proto jsem se rozhodl upravit weby napsané v PHP tak, aby uživatel po dobu otevření stránky nikdy nebyl automaticky odhlášen.

Můj skript využívá jednoduché funkce javascriptu, jež načte po svém zavolání externí javaskriptový soubor, kterým je samozřejmě PHP soubor generující nové session id.

function refresh() { // odmazeme stary skript, pokud existoval var hlavicka = document.getElementsByTagName('head')[0]; var dataLoader = document.getElementById('scriptLoader'); if(dataLoader) hlavicka.removeChild(dataLoader);   // vytvorime novy element script script = document.createElement('script'); script.id = 'scriptLoader'; script.src = 'reload.php?reload='+Math.random();   // vlozime do stranky, cimz prohlizec stahne skript x = document.getElementsByTagName('head')[0]; x.appendChild(script); timeout(); return false; }

Poté je potřeba ještě tuto funkci každých 5 minut zavolat, na to používám javaskriptovou funkci SetTimeout

function timeout() { setTimeout( "refresh()", 5*60000 ); // get session id every 5 minutes }

Nakonec si zajistíme, aby se automatické přihlašování vždy spustilo po načtení stránky takto:

<body onload="timeout()">

Nakonec na server uložíme PHP skript reload.php, jež automaticky vygeneruje nové session ID

<?php // destroy old session session_start(); $SESSION = $_SESSION; session_destroy();   // save new session session_start(); session_regenerate_id(); $_SESSION = $SESSION; session_write_close(); ?>

A nyní můžeme příspěvek psát třeba celou noc a nikdy o něj nepřijdeme. No uznejte není to geniální?


autor novyblog | cal 13.3.2009 | Zápisník osobní věci, osobní blog Zápisník |

Kometáře


Zatim tu nejsou žádný (schválené) kometáře.
Nové kometáře nejsou povolené.

Související články

efekty v gimpu Mobipocket e Book Reader kam napsat tahaky htc smart tapety jaký hosting horory nejlepší filmy prison break na tv nova COCACOLAHRY vtipy kamion rytmus tapety

Vyhledávání na webu

RSS export

RSS článků z blogu RSS export

Kategorie

Zajimavé