Autor Zpráva
RAY
Profil
Zdravím všechny,

mám problém sice s JavaScriptem, ale problém bude zřejmě na straně PHP (viz dále). Přesměrovávám (pomocí header("Location: ...")) z neSEO url na SEO url, ale mám zajímavý poblém:

Ti, kteří znají phpBB určitě vědí, ža zobrazit daný thread (téma) lze jak např. přes link http://united-nuke.openland.cz/modules.php?name=Forums&file=viewtopic& t=727 tak http://united-nuke.openland.cz/modules.php?name=Forums&file=viewtopic& p=3157#3157.
Pokud však návštěvník klikne na ten druhý, tak v mém případě nastane na načtené stránce chyba javascriptu "Oprávnění byla odepřena". (POZOR: děje se pouze v IE 6 SP2) Vzhledem k tomu, že stránky, které systém vygeneruje po kliknutí na tyto dva linky jsou "binary equal" problém musí být jedině v tom přesměrování (ničím jiným se ty stránky neliší).

V JavaScriptu nejsem žádný nováček, avšak na tento problém se mi jednak nepodařilo přijít a ani google nepomohl. Jediné co jsem vyzkoumal je, že není možné přistupovat k objektu document, což je imho blbost - je ve stejném framu jako script (vysvětluju si to tak, že IE 6 SP2 v řadě věcí klade na důraz na bezpečnost a to přesměrování ho nějak zmate a nepovolí skriptu zapsat (document.write(...) ) do stránky).

Osobně si myslím, že je třeba nějak vylepšit to přesměrování o další hlavičky. Ale co si IE přeje netuším...
Honza Hučín
Profil
Nevím, jestli Ti nějak pomůžu, ale zkus se zamyslet nad přesměrováním pomocí mod-rewrite.
RAY
Profil
Jasně, že by byl mod_rewrite lepší. Ale já ho nechci použít z toho důvodu, že chci aby systém měl co nejnižší požadavky na provoz.
Zatím se mi podařilo akorát vyzkoumat, že když přesměruju pomocí "Refresh: 0; URL=http://..." tak ta chyba nenastane. Jenže tahle hlavička je určena tak trochu k něčemu jinému, než jí tímto použiji...
RAY
Profil
Takže asi jediný způsob jak to vyřešit bude nadetekovat IE a předhodit mu header("Refresh: 0; URL=http://...").
Opravdu by mě zajímalo, proč to hlásí tu chybu, když se použije Location:....
RAY
Profil
Takže jsem to vyřešil. Jde skutečně o chybu IE 6 SP2: http://support.microsoft.com/default.aspx?scid=kb;en-us;889386

K dispozici je hotfix a tato oprava prý bude i v dalším service packu.

Řešení existuje pouze pomocí header("Refresh: 0; URL=http://...").
Toto téma je uzamčeno. Odpověď nelze zaslat.

0