diff --git a/includes/session.inc b/includes/session.inc index 48938d2ca0c87b29ea25ec0b11f0826e1be16cf6..bb9cc8900860a8e1944d83b402a37a04c22b7592 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -53,8 +53,12 @@ function sess_write($key, $value) { $result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key); if (!db_num_rows($result)) { - // Only save session data when there is session data available. - if ($user->uid || $value) { + // Only save session data when when the browser sends a cookie. This keeps + // crawlers out of session table. This improves speed up queries, reduces + // memory, and gives more useful statistics. We can't eliminate anonymous + // session table rows without breaking throttle modulee and "Who's Online" + // block. + if ($user->uid || $value || count($_COOKIE)) { db_query("INSERT INTO {sessions} (sid, uid, cache, hostname, session, timestamp) VALUES ('%s', %d, %d, '%s', '%s', %d)", $key, $user->uid, $user->cache, $_SERVER["REMOTE_ADDR"], $value, time()); } }