aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/functions_session.inc.php17
1 files changed, 14 insertions, 3 deletions
diff --git a/include/functions_session.inc.php b/include/functions_session.inc.php
index f2533d1d1..96508a923 100644
--- a/include/functions_session.inc.php
+++ b/include/functions_session.inc.php
@@ -165,14 +165,25 @@ UPDATE '.SESSIONS_TABLE.'
WHERE id = \''.$session_id.'\'
;';
pwg_query($query);
- if ( mysql_affected_rows()==-1 )
- {
+ if ( mysql_affected_rows()==0 )
+ { // 2 possible cases:
+ //- the user has just login so we need to insert
+ //- the user went through 2 pages very fast (in the same second), so
+ // data and expiration are the same as before
$query = '
+SELECT id FROM '.SESSIONS_TABLE.'
+ WHERE id = \''.$session_id.'\'
+;';
+ $id = array_from_query( $query, array('id') );
+ if ( empty($id) )
+ {
+ $query = '
INSERT INTO '.SESSIONS_TABLE.'
(id,data,expiration)
VALUES(\''.$session_id.'\',\''.$data.'\',now())
;';
- pwg_query($query);
+ pwg_query($query);
+ }
}
return true;
}