Commit b0705ac3d69466321f28cb4a352aafc46734a948
1 parent
36bdb337
updated session error handling and sql formatting
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@259 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
22 additions
and
20 deletions
lib/Session.inc
| @@ -4,17 +4,17 @@ | @@ -4,17 +4,17 @@ | ||
| 4 | * | 4 | * |
| 5 | * This class is used for session management. | 5 | * This class is used for session management. |
| 6 | * | 6 | * |
| 7 | - * @author owl sourceforge team | 7 | + * @author <a href="mailto:michael@jamwarehouse.com">Michael Joseph</a>, Jam Warehouse (Pty) Ltd, South Africa |
| 8 | * @version $Revision$ | 8 | * @version $Revision$ |
| 9 | - * @package Owl | 9 | + * @package dmslib |
| 10 | */ | 10 | */ |
| 11 | class Session { | 11 | class Session { |
| 12 | 12 | ||
| 13 | /** | 13 | /** |
| 14 | * Creates a session. | 14 | * Creates a session. |
| 15 | * | 15 | * |
| 16 | - * @param $userDetails array containing user details | ||
| 17 | - * @return returns the generated sessionID | 16 | + * @param array $userDetails the details of the user to create a session for |
| 17 | + * @return string the generated sessionID | ||
| 18 | */ | 18 | */ |
| 19 | function create($userDetails) { | 19 | function create($userDetails) { |
| 20 | global $default; | 20 | global $default; |
| @@ -39,8 +39,8 @@ class Session { | @@ -39,8 +39,8 @@ class Session { | ||
| 39 | 39 | ||
| 40 | // insert session information into db | 40 | // insert session information into db |
| 41 | $sql = new Owl_DB; | 41 | $sql = new Owl_DB; |
| 42 | - $query = "insert into $default->owl_sessions_table (session_id, user_id, lastused, ip) values ('$sessionID', '$userID', '" . date("Y-m-d H:i:s", time()) . "', '$ip')"; | ||
| 43 | - //echo "query=$query<br>"; | 42 | + $query = "INSERT INTO $default->owl_sessions_table (session_id, user_id, lastused, ip) VALUES ('$sessionID', '$userID', '" . date("Y-m-d H:i:s", time()) . "', '$ip')"; |
| 43 | + | ||
| 44 | $result = $sql->query($query); | 44 | $result = $sql->query($query); |
| 45 | if(!$result) { | 45 | if(!$result) { |
| 46 | die("$lang_err_sess_write"); | 46 | die("$lang_err_sess_write"); |
| @@ -58,7 +58,7 @@ class Session { | @@ -58,7 +58,7 @@ class Session { | ||
| 58 | session_start(); | 58 | session_start(); |
| 59 | // remove the session information from the database | 59 | // remove the session information from the database |
| 60 | $sql = new Owl_DB; | 60 | $sql = new Owl_DB; |
| 61 | - $query = "delete from $default->owl_sessions_table where session_id = '" . session_id() . "'"; | 61 | + $query = "DELETE FROM $default->owl_sessions_table WHERE session_id = '" . session_id() . "'"; |
| 62 | $sql->query($query); | 62 | $sql->query($query); |
| 63 | 63 | ||
| 64 | // remove the php4 session | 64 | // remove the php4 session |
| @@ -77,7 +77,7 @@ class Session { | @@ -77,7 +77,7 @@ class Session { | ||
| 77 | // deletes any sessions for this userID where the default timeout has elapsed. | 77 | // deletes any sessions for this userID where the default timeout has elapsed. |
| 78 | $time = time() - $default->owl_timeout; | 78 | $time = time() - $default->owl_timeout; |
| 79 | $sql = new Owl_DB; | 79 | $sql = new Owl_DB; |
| 80 | - $sql->query("delete from $default->owl_sessions_table where user_id = '" . $userID . "' and lastused <= '" . date("Y-m-d H:i:s",$time) . "'"); | 80 | + $sql->query("DELETE FROM $default->owl_sessions_table WHERE user_id = '" . $userID . "' AND lastused <= '" . date("Y-m-d H:i:s",$time) . "'"); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | /** | 83 | /** |
| @@ -95,11 +95,11 @@ class Session { | @@ -95,11 +95,11 @@ class Session { | ||
| 95 | if (strlen($sessionID) > 0) { | 95 | if (strlen($sessionID) > 0) { |
| 96 | 96 | ||
| 97 | // initialise return status | 97 | // initialise return status |
| 98 | - $sessionStatus["status"] = 0; | 98 | + $sessionStatus = 0; |
| 99 | 99 | ||
| 100 | // this should be an existing session, so check the db | 100 | // this should be an existing session, so check the db |
| 101 | $sql = new Owl_DB; | 101 | $sql = new Owl_DB; |
| 102 | - $sql->query("select * from $default->owl_sessions_table where session_id = '$sessionID'"); | 102 | + $sql->query("SELECT * FROM $default->owl_sessions_table WHERE session_id = '$sessionID'"); |
| 103 | $numrows = $sql->num_rows($sql); | 103 | $numrows = $sql->num_rows($sql); |
| 104 | 104 | ||
| 105 | // found one match | 105 | // found one match |
| @@ -117,32 +117,34 @@ class Session { | @@ -117,32 +117,34 @@ class Session { | ||
| 117 | $default->log->debug("Session::verify timeout = " . $default->owl_timeout . "; diff=$diff"); | 117 | $default->log->debug("Session::verify timeout = " . $default->owl_timeout . "; diff=$diff"); |
| 118 | if((time() - strtotime($lastused)) <= $default->owl_timeout) { | 118 | if((time() - strtotime($lastused)) <= $default->owl_timeout) { |
| 119 | // session has been verified, update status | 119 | // session has been verified, update status |
| 120 | - $sessionStatus["status"] = 1; | 120 | + $sessionStatus = 1; |
| 121 | + // ??: will this change during a user session? | ||
| 121 | // only set the userID if its not in the array already | 122 | // only set the userID if its not in the array already |
| 122 | - if (!$sessionStatus["userID"]) { | ||
| 123 | - $sessionStatus["userID"] = $sql->f("user_id"); | 123 | + if (!$_SESSION["userID"]) { |
| 124 | + $_SESSION["userID"] = $sql->f("user_id"); | ||
| 124 | } | 125 | } |
| 125 | // lookup the user | 126 | // lookup the user |
| 126 | - $sql->query("select * from $default->owl_users_table where id = '".$sessionStatus["userid"]."'"); | 127 | + $sql->query("SELECT * FROM $default->owl_users_groups_table WHERE id = ".$_SESSION["userID"]); |
| 127 | while($sql->next_record()) { | 128 | while($sql->next_record()) { |
| 128 | // FIXME: this much change to look at users_groups_link | 129 | // FIXME: this much change to look at users_groups_link |
| 129 | // only set the groupID if its not in the array already | 130 | // only set the groupID if its not in the array already |
| 130 | - if (!$sessionStatus["groupID"]) { | ||
| 131 | - $sessionStatus["groupID"] = $sql->f("group_id"); | 131 | + if (!$_SESSION["groupID"]) { |
| 132 | + $_SESSION["groupID"] = $sql->f("group_id"); | ||
| 132 | } | 133 | } |
| 133 | } | 134 | } |
| 134 | // update last used timestamps | 135 | // update last used timestamps |
| 135 | - $sql->query("update $default->owl_sessions_table set lastused = '" . date("Y-m-d H:i:s",time()) ."' where user_id = '" . $sessionStatus["userID"] . "'"); | 136 | + $sql->query("UPDATE $default->owl_sessions_table SET lastused = '" . date("Y-m-d H:i:s",time()) ."' " . |
| 137 | + "WHERE user_id = " . $_SESSION["userID"] . " AND session_id = '$sessionID'"); | ||
| 136 | // add the array to the session | 138 | // add the array to the session |
| 137 | $_SESSION["sessionStatus"] = $sessionStatus; | 139 | $_SESSION["sessionStatus"] = $sessionStatus; |
| 138 | } else { | 140 | } else { |
| 139 | // session timed out status | 141 | // session timed out status |
| 140 | - $sessionStatus["status"] = 2; | 142 | + $sessionStatus = 2; |
| 141 | $default->errorMessage = $lang_sesstimeout; | 143 | $default->errorMessage = $lang_sesstimeout; |
| 142 | } | 144 | } |
| 143 | } else { | 145 | } else { |
| 144 | // session in use status | 146 | // session in use status |
| 145 | - $sessionStatus["status"] = 3; | 147 | + $sessionStatus = 3; |
| 146 | $default->errorMessage = $lang_sessinuse; | 148 | $default->errorMessage = $lang_sessinuse; |
| 147 | } | 149 | } |
| 148 | } | 150 | } |
| @@ -153,7 +155,7 @@ class Session { | @@ -153,7 +155,7 @@ class Session { | ||
| 153 | return false; | 155 | return false; |
| 154 | } | 156 | } |
| 155 | // return the array | 157 | // return the array |
| 156 | - $output = "Session::verify returning sessionStatus[\"status\"]=" . $sessionStatus["status"]; | 158 | + $output = "Session::verify returning sessionStatus[\"status\"]=" . $sessionStatus; |
| 157 | $default->log->debug($output); | 159 | $default->log->debug($output); |
| 158 | return $sessionStatus; | 160 | return $sessionStatus; |
| 159 | } | 161 | } |