summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/session.inc8
1 files changed, 6 insertions, 2 deletions
diff --git a/includes/session.inc b/includes/session.inc
index 48938d2ca..bb9cc8900 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());
}
}