Zacal jsem pouzivat sessions, predevsim pro moznost prihlaseni lidi, kterym nefunguji cookies. Pouzivam tedy session.use_trans_sid. V ramci jednoduchosti mam vzdy na zacatku kazde stranky session_start(). Funguje to dobre, kazdy novy navstevnik dostane SID, ale az pri pohledu do logu mne napadlo, ze pan Botman ze Seznam.cz by mozna mel stranky radeji indexovat bez SID, predpokladam, ze pak kdokoliv by prisel ze Seznamu, prisel by s Botmanovym SID.
Mam to tedy udelat tak, ze sesson bez podminky odstartuji az po prihlaseni (pan Botman se pres formular neprihlasi) a na ostatnich strankach s podminkou "kdyz existuje SID tak sesson_start()". Nebo se to dela jinak a jsem mimo?
Diky moc. A.
Sessions maji jista omezeni, mimo jine myslim ze i kontroluji IP adresu, takze pokud se ti zmeni, nastartuji se nove (asi s jinym ID) nebo se aspon nepouziji ty stare. Aby se nedalo krast session kdyz znas session_id. A taky maji jisty cas platnosti, takze sessions pana Botmana uz davno nemusi existovat, tzn ze kdyz klinknu na odkaz s s tim SID, pouze se zalozi nove sessions s tim ID.
Funous má pravdu v tom, že to není nebezpečné, protože sessions mají omezenou platnost. Ale potřeboval jsem jednou odlišit chování pro roboty, takže jsem našel jejich seznam a vytvořil následující krásnou podmínku:
if (eregi('SeznamBot|Googlebot|MSNBOT|Crawler|AbachoBOT|ia_archiver|Mercator|Scooter|AltaVista-Intranet|Wget|Acoon Robot|antibot|AxmoRobot|DeepIndex|DittoSpyder|Speedy Spider|ArchitextSpider|Arachnoidea|EZResult|FyberSearch|KIT-Fireball|GalaxyBot|geckobot|GeonaBot|moget|Aranha|UltraSeek|IncyWincy|lookbot|mozDex|Gulliver|ObjectsSearch|asterias|Searchspider|SightQuestBot|teoma_agent|UK Searcher Spider|Nazilla|ZyBorg|WSCbot|Yandex|ALink|CNET_Snoop|Linkbot|Robozilla|W3C_Validator|Yahoo! Slurp|Jyxobot|TutorGigBot', $_SERVER["HTTP_USER_AGENT"])) {
//neco pro boty
} else // neco pro lidi
Nejsou tam úplně všechny, ale třeba slovo "Crawler" obsahuje spousta názvů botů. Zdá se, že to funguje docela dobře.
Milá podmínka, ale nezdá se mi že by funkční.
Co znamená $_SERVER["HTTP_USER_AGENT"] ?
Obsahuje tato proměnná v případě botů jejich název?
HTTP_USER_AGENT obsahuje identifikační řetězec prohlížeče, případně robota. A zdá se mi celkem funkční. Potřeboval jsem to kvůli přesunu stránek na novou adresu. Lidi vidí informaci o přesunu, roboti dostanou Moved Permanently. Google starou adresu od té doby přestal znát a v Seznamu se náš odkaz vrátil na 4. místo v kategorii po hlubokém propadu způsobeném používáním obou adres. U těchto dvou to mám tedy ověřeno.
Děkuji všem, nakonec jsem to vyřešil spouštěním session až po přihlášení.
Jinak jsem si vzal příklad z toho "moved premanently" a na dvě staré domény jsem jej aplikoval. Výsledkem bylo, že staré domény jsou v google vesele dál a zmizela... ta nová =:-O
No snad to souvisí s něčím jiným, i když na stránky jsem nesáh a 8. tam byly a 11. ani vidu, ani slechu, jsou fuč :(