Problém s vkládáním příspěvků - už je to jasné
31.8.2004 Zvědavec Témata: Nezařazeno 566 slov
Někteří čtenáři si v poslední době stěžují, že napíší příspěvek do diskuze, kliknou na Odeslat - a nic se neděje. Žádná chyba se neobjeví, příspěvek pouze nelze odeslat. Podezříval jsem nejprve sám sebe - že jsem snad zase někde udělal botu v programovém skriptu pro diskuze. Jak se ale ukázalo, chyba je někde jinde. Poděkujme za ni opět Microsoftu.
Možná nejde ani o chybu v pravém slova smyslu. Pouze o limit, který má MS IE tam, kde by ho mít neměl.
Omlouvám se, že budu trošičku technický. Koho to nezajímá, nechť pokračuje nadpisem Jak z toho ven. Při odesílání příspěvku vyplňujete vlastně formulář. Formulář pro webovou stránku lze odeslat dvěma metodami - metodou GET a metodou POST. Co do obsahu doručené zprávy by obě metody měly být kompatibilní. Alespoň tak praví norma. Rozdíl je pouze v tom, že u metody GET se všechno, co jste napsali, natlačí do jednoho řádku v URL adrese. V případě POST obsahuje URL adresa pouze jméno souboru, jinak je holá jako holátko. Obsah formuláře se posílá uvnitř.
Jak správně tušíte, změnil jsem nedávno způsob odesílání formulářů v diskuzích z POST na GET. Tím se celý obsah příspěvku vkládá do URL adresy. To by mělo být transparentní, norma neomezuje délku řetězce ve formuláři podle metody GET nebo POST. Ale v Microsoftu se rozhodli, norma nenorma, že oni délku řetězce u URL řádku (a tedy vlastně u metody GET) omezí. MS Explorer dovoluje maximální délku URL adresy 2 083 znaky. Když si navíc uvědomíme, že každé zalomení řádku se konvertuje do šesti znaků %0D%0A, příliš místa na vlastní text nezbývá.
Přesahuje-li počet všech znaků v adrese číslo 2083, MS IE odmítne adresu zpracovat. Podotýkám, že skutečné prohlížeče jako jsou Opera, Mozilla, Galeon, Konqueror či Firefox s tímto problémy nemají a přenesou v URL adrese cokoliv tam vložíte.
Jak z toho ven
Mohl bych udělat další úpravy skriptu pro diskuze. Kombinovat způsoby přenosu tak, aby se vlk nažral a koza zůstala celá. Ale nechci to dělat. Rozhodl jsem se, že nebudu dále ustupovat diktátu Microsoftu. Snad by se mělo na titulní stránce objevit prohlášení ve stylu Tyto stránky odpovídají standardům a tudíž nejsou optimalizovány pro MS IE. Použití MS IE může znamenat omezení funkčnosti.
Zatím to bylo vždy tak, že se s nedostatky MS IE prali pouze designeři webových stránek. Uživatelé MS IE byli pečlivě chráněni. To ale na druhé straně vedlo k tomu, že je nic nenutilo uvažovat o případné změně prohlížeče. Aniž bych je chtěl urazit, domnívám se, že to není správné.
Možná mi někdo vytkne, že si nevážím svých čtenářů. Tak to není, jsem vděčen za každou návštěvu. Nejsem to já, kdo si neváží uživatelů. Je to Microsoft. On nás drží rukojmím. A já odmítám jeho požadavky, i když to může znamenat - obrazně řečeno - popravu rukojmí.
Takže zde ve Zvědavci bude platit pravidlo, že délka příspěvku může být maximálně 3000 znaků pro všechny, kteří nepoužívají MS IE. Pro čtenáře používající MS IE to bude něco mezi 1500-2000 znaky. Toto je omezení, které použil Microsoft na metodu, která je plně standardní a podle normy.
Jestliže tedy používáte MS IE a po kliknutí na Odeslat se nic neděje, musíte příspěvek buď zkrátit, nebo použít jiný prohlížeč.
Případné stížnosti adresujte Billovi.