Geniální session v PHP Skyluke
Navigace:Skyluke ⇒ Zá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ť uGeniá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í?
Kometáře
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 tapetyVyhledávání na webu
RSS export
RSS článků z blogu RSS exportKategorie
- Zápisník
- PC/Internet
- mrtvy blog
- TV - Film
- mrtvy blog
- Zábava
- Design
- Hry
- Ze života
- Mé výtvory
- Linux
- Mobilní telefony/ WM
- - bleskovky
Zajimavé
- Nový redaktor aneb Rembrant.F
- 1. výročí zápisníku
- Proč vlastně bloguju?
- Neaktivita
- Životopis Abraham film v italstine windows 7 tapety zitra je zasrana škola zombie komiksy clone wars online film cz dabing pták bouřlivák vesela prani k vanocum jaký prostředí pro windows mobile photoshop brushe tahák do literatury
- planeta opic movie 2011 online
- vypalovacka na 3D filmy
- kocour v botách 2011 online megavideo
- lg lw5500 test
- filmy fantazy
novyblog |
13.3.2009 |