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 | 4 | * |
| 5 | 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 | 8 | * @version $Revision$ |
| 9 | - * @package Owl | |
| 9 | + * @package dmslib | |
| 10 | 10 | */ |
| 11 | 11 | class Session { |
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 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 | 19 | function create($userDetails) { |
| 20 | 20 | global $default; |
| ... | ... | @@ -39,8 +39,8 @@ class Session { |
| 39 | 39 | |
| 40 | 40 | // insert session information into db |
| 41 | 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 | 44 | $result = $sql->query($query); |
| 45 | 45 | if(!$result) { |
| 46 | 46 | die("$lang_err_sess_write"); |
| ... | ... | @@ -58,7 +58,7 @@ class Session { |
| 58 | 58 | session_start(); |
| 59 | 59 | // remove the session information from the database |
| 60 | 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 | 62 | $sql->query($query); |
| 63 | 63 | |
| 64 | 64 | // remove the php4 session |
| ... | ... | @@ -77,7 +77,7 @@ class Session { |
| 77 | 77 | // deletes any sessions for this userID where the default timeout has elapsed. |
| 78 | 78 | $time = time() - $default->owl_timeout; |
| 79 | 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 | 95 | if (strlen($sessionID) > 0) { |
| 96 | 96 | |
| 97 | 97 | // initialise return status |
| 98 | - $sessionStatus["status"] = 0; | |
| 98 | + $sessionStatus = 0; | |
| 99 | 99 | |
| 100 | 100 | // this should be an existing session, so check the db |
| 101 | 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 | 103 | $numrows = $sql->num_rows($sql); |
| 104 | 104 | |
| 105 | 105 | // found one match |
| ... | ... | @@ -117,32 +117,34 @@ class Session { |
| 117 | 117 | $default->log->debug("Session::verify timeout = " . $default->owl_timeout . "; diff=$diff"); |
| 118 | 118 | if((time() - strtotime($lastused)) <= $default->owl_timeout) { |
| 119 | 119 | // session has been verified, update status |
| 120 | - $sessionStatus["status"] = 1; | |
| 120 | + $sessionStatus = 1; | |
| 121 | + // ??: will this change during a user session? | |
| 121 | 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 | 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 | 128 | while($sql->next_record()) { |
| 128 | 129 | // FIXME: this much change to look at users_groups_link |
| 129 | 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 | 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 | 138 | // add the array to the session |
| 137 | 139 | $_SESSION["sessionStatus"] = $sessionStatus; |
| 138 | 140 | } else { |
| 139 | 141 | // session timed out status |
| 140 | - $sessionStatus["status"] = 2; | |
| 142 | + $sessionStatus = 2; | |
| 141 | 143 | $default->errorMessage = $lang_sesstimeout; |
| 142 | 144 | } |
| 143 | 145 | } else { |
| 144 | 146 | // session in use status |
| 145 | - $sessionStatus["status"] = 3; | |
| 147 | + $sessionStatus = 3; | |
| 146 | 148 | $default->errorMessage = $lang_sessinuse; |
| 147 | 149 | } |
| 148 | 150 | } |
| ... | ... | @@ -153,7 +155,7 @@ class Session { |
| 153 | 155 | return false; |
| 154 | 156 | } |
| 155 | 157 | // return the array |
| 156 | - $output = "Session::verify returning sessionStatus[\"status\"]=" . $sessionStatus["status"]; | |
| 158 | + $output = "Session::verify returning sessionStatus[\"status\"]=" . $sessionStatus; | |
| 157 | 159 | $default->log->debug($output); |
| 158 | 160 | return $sessionStatus; |
| 159 | 161 | } | ... | ... |