3. května 2007
Na nový IE 7.0 jsem zde již jednou nadával. Dnes to však bude kvůli nedostatku času kratší. Zhruba hodinu jsem u jedné své aplikace řešil problém ztracené session v otevřeném pop-up okně (potřebuji session pro výběr obrázku v FCKeditoru v jistém administračním rozhraní). Zatímco IE6, Firefox i Opera fungovaly naprosto bez problémů, IE7 stále ne a ne data ze session přečíst.
Popravdě řečeno jsem tentokráte příliš nezkoumal podstatu problému, nejdůležitější bylo chybu co nejefektivněji opravit. Přečetl jsem si, že IE7 má se sessions nějaké problémy a že je "někdy" maže při zavření pop-upu. Ne, tak tento problém zdá se není můj případ, protože i když pop-upy nefungují, v hlavním okně zůstávám přihlášen i nadále. Spíše se tedy zdá, že zatímco první otevřený pop-up z hlavního okna ještě sessions vidí (dialog Vložit / Změnit obrázek v FCKEditoru), následně otevřený další pop-up pro výběr obrázku na serveru se k sessions již zřejmě nedostane.
Řešení problému je nakonec docela jednoduché, i když na druhou stranu opruzující. Důležité je zajistit, aby se session skutečně uložila do souboru cookie, a ne pouze do paměti prohlížeče. Například takto:
K výše uvedenému řešení snad jen jedna poznámka - je třeba si uvědomit, že v tomto konkrétním řešení je nastavena platnost session na 30 minut (1800 sekund), což znamená, že nedojde k automatickému odhlášení po zavření prohlížeče! Pokud do 30 minut někdo v prohlížeči navštíví administrační stránku, bude stále přihlášen. Přestože si moc nedovedu představit reálné zneužití, je vhodné pro jistotu naučit uživatele opouštět webovou administraci nikoli zavřením prohlížeče, ale navštívením odkazu "odhlásit se".
Publikováno dne 03. 05. 2007 v kategorii Programování
Odhadnutá klíčová slova BETA: explorer | session | internet | chyba | ie | vložit ip explorer | internet explorer chyba | problem | php
Mohlo by Vás zajímat BETA: CPU 100%, nefunkční klávesnice a touchpad
O kategorii Programování
V nejodbornější kategorii tohoto blogu jsou zařazeny články s mými programátorskými zkušenostmi získanými několikaletou praxí tvorby stránek a java aplikací pro mobilní telefony.
RH - [email schován] (dne 01. 03. 2009 v 15.54)
Povedal by som ze "problem" je u popup okien u IE v niecom inom.Mam IE 6.0 a prejavil sa ten problem, ze ked otvorim Popup okno naviazany na vyhodnocovaci skript v PHP po session_start() z nepochopitelnych dovodov poda IE podnet k vytvoreniu novej relacie a kedze to testujem lokalne je skutocne vidiet ze PHP vytvori na strane serveru nove SID(relaciu) akoby som otvoril novy prehliadac a prihlasil sa znova.Je to uplna blbost a to vypoveda o neschopnosti Microsoftu doladit IE.Vsetky ostatne prehliadace ktore som doteraz skusal sa spravaju korektne!Obidenie tohoto problemu spociva v tom ze Popup oknu resp,jeho skriptu treba prostrednictvom parametru GET preposlat SID cislo hlavneho okna niecim takymto
<?php echo "xxx.php?SID=".session_id(); ?>
Interpreter PHP si potom to SID prebere automaticky a _SESSION bude tu premennu vidiet kdekolvek kedze session_start() si v takomto pripade kod prevezme z parametru SID v GET a otvori tu spravnu relaciu.
Programátor, samozvaný hodnotitel a zejména kritik.
Pan Vyplňto.cz a tvůrce několika webových stránek.