Weblog pro webmastery a webdesignéry
17. 04. 2003
PHP sessions, validátory a vyhledavače
Session management v PHP je mocný nástroj. Bez řádného ošetření však napáchá značné škody.
Čím dál víc webmasterů usiluje o validní HTML kód a mnoho z nich přitom naráží na problém s PHP sessions. Je-li session management v PHP zapnut (session_start
) a klient neakceptuje cookies, PHP generuje do URL parametr PHPSESSID
. Pokud již ale v URL nějaký parametr máte, použije PHP jako oddělovač prostý znak &
namísto entity &
a nevalidní stránka je na světě.
Náprava je celkem jedoduchá. Stačí, když do souboru php.ini vložíte řádek
arg_separator.output = "&"
Nemáte-li přístup k souboru php.ini, pomůže tento řádek přímo ve vašem skriptu:
ini_set('arg_separator.output', '&');
Co na to vyhledavače
Nyní máte validní kód, ale ještě jste nevyhráli. Mnohem větší problém vás totiž čeká s vyhledavači. Robot vyhledavače, podobně jako validátor, neakceptuje cookies a dostane tedy od serveru odkazy obsahující PHPSESSID
. Bohužel, ID je při každé návštěvě robota jiné a pohroma je na světě. Takové stránky nemají prakticky šanci ve vyhledavačích uspět.
I zde ale rešení existuje, i když o něco složitější. Ve svém skriptu musíte zajistit, aby se pro roboty vyhledavačů session management vůbec nespouštěl. Vzor kódu naleznete např. v tomto příspěvku na WebmasterWorld.
Jeden den v životě vyhledavače
Vzorce chování uživatelů vyhledavače BBCi analyzoval Martin Belam.
Součástí zpravodajského portálu BBCi je vyhledavač, kterým lze prohledávat nejen stránky BBC, ale i celý Web. Tým BBC provoz vyhledavače průběžně monitoruje a statisticky vyhodnocuje pokládané dotazy. Tím však lze získat jen některé informace, neboť 80 % dotazů je unikátních nebo se vyskytuje natolik zřídka, že se v souhrnných statistikách vůbec neprojeví.
Martin Belam na to proto šel jinak – velmi detailně analyzoval data z jediného dne. Ručně přitom posoudil a klasifikoval 18 tisíc dotazů a snažil se najít typické vzorce v chování uživatelů. Výsledky své práce pak popsal ve studii nazvané A Day In The Life Of BBCi Search (currybetdotnet, březen 2003). Ze zjištění studie namátkou vybírám:
- 8 % položených dotazů obsahovalo nějaký překlep.
- 3 % dotazů bylo tvořeno URI.
- 36 % dotazů bylo jednoslovných, 35 % se skládalo ze dvou slov.
Další příspěvky weblogu
- Předcházející den: 16. 04. 2003
- Následující den: 18. 04. 2003
- Celý měsíc
- Posledních pět dní