Joomla! käyttää sivustolla vierailevan kävijän IP-osoitetta apuna istuntotunnuksen (session id) luomiseen ja validointiin. Kun sivustolle tulee uusi kävijä, Joomla luo satunnaisluvun ja yhdistää tämän satunnaisluvun kävijän IP-osoitteen kanssa. Istuntotunnus (session id) luodaan kutsumalla MD5-funktiota, jolle annetaan parametrina edellä muodostettu yhdistelmäluku.
Satunnaisluvusta tulee evästeen arvo ja yhdistelmäluvusta istuntotunnus, joka tallennetaan jos_sessions-tauluun. Eväste tallennetaan käyttäjän koneelle, sitä ei tallenneta esim. Joomlan cache-hakemistoon.
Koodissa asia toimii karkealla tasolla tähän tapaan:
$satunnaisluku = joomla_luo_satunnaisluku_funktio();
$eväste = $satunnaisluku;
$istuntotunnus = md5( $ satunnaisluku . IP_osoite);
Kun kävijä siirtyy toiselle sivulle (samalla sivustolla), Joomla! etsii istuntotunnusta, joka täsmää tietokannassa olevan md5($ eväste . IP_osoite) -arvon kanssa. Jos sopivaa istuntotunnusta ei löydy, Jooma! luo uuden istunnon. Jos evästettä ei ole (kuten hakuroboteilla) tai kävijän IP-osoite on muuttunut, soveltuvaa tunnusta ei löydy ja joudutaan luomaa uusi istunto.
Useimmat Joomla!-käyttäjät ovat huomanneet, että "Who's Online / käyttäjiä sivustolla" -moduuli näyttää epätavallisen suuren luvun sivustolla olevien vierailijoiden määräksi. "Who's Online käyttäjiä sivustolla" -moduuli näyttää Joomlan tietokantaan tallennettujen istuntotunnusten lukumäärän, joten virhe johtuu siitä että tietokantaan tallennetaan liian monta istuntotunnusta.
Jos sivustolla kävijän IP osoite muuttuu jokaisen sivulatauspyynnön välillä ja kävijä vierailee kymmenellä eri sivulla, tallentuu Joomlan tietokantaan 10 eri istuntotunnusta vaikka kyseessä on sama käyttäjä. Samoin sivustolla vierailevat hakurobotit kasvattavat istuntotunnusten määrää.
Alkuperäinen vastaus: Markku Suominen