/** * Updates the current session id with a newly generated one. * Please refer to {@link http://php.net/session_regenerate_id} for more details. * @param boolean $deleteOldSession Whether to delete the old associated session file or not. * @since 1.1.8 */ public function regenerateID($deleteOldSession = false) { $oldID = session_id(); // if no session is started, there is nothing to regenerate if (empty($oldID)) { return; } parent::regenerateID(false); $newID = session_id(); $db = $this->getDbConnection(); $row = $db->{$this->sessionTableName}->findOne(array('id' => $oldID)); if ($row) { // $row should either be a truey value or a falsey value if ($deleteOldSession) { $db->{$this->sessionTableName}->update(array('id' => $oldID), array('$set' => array('id' => $newID))); } else { unset($row['_id']); $row['id'] = $newID; $db->{$this->sessionTableName}->insert($row); } } else { // shouldn't reach here normally $db->{$this->sessionTableName}->insert(array('id' => $newID, 'expire' => time() + $this->getTimeout())); } }
/** * Updates the current session id with a newly generated one. * Please refer to {@link http://php.net/session_regenerate_id} for more details. * @param boolean $deleteOldSession Whether to delete the old associated session file or not. * @since 1.1.8 */ public function regenerateID($deleteOldSession = false) { $oldID = session_id(); // if no session is started, there is nothing to regenerate if (empty($oldID)) { return; } parent::regenerateID(false); $newID = session_id(); $db = $this->getDbConnection(); $row = $db->createCommand()->select()->from($this->sessionTableName)->where('id=:id', array(':id' => $oldID))->queryRow(); if ($row !== false) { if ($deleteOldSession) { $db->createCommand()->update($this->sessionTableName, array('id' => $newID), 'id=:oldID', array(':oldID' => $oldID)); } else { $row['id'] = $newID; $db->createCommand()->insert($this->sessionTableName, $row); } } else { // shouldn't reach here normally $db->createCommand()->insert($this->sessionTableName, array('id' => $newID, 'expire' => time() + $this->getTimeout())); } }
/** * Updates the current session id with a newly generated one . * Please refer to {@link http://php.net/session_regenerate_id} for more details. * @param boolean $deleteOldSession Whether to delete the old associated session file or not. * @since 1.1.8 */ public function regenerateID($deleteOldSession = false) { $oldID = session_id(); parent::regenerateID(false); $newID = session_id(); $db = $this->getDbConnection(); $sql = "SELECT * FROM {$this->sessionTableName} WHERE id=:id"; $row = $db->createCommand($sql)->bindValue(':id', $oldID)->queryRow(); if ($row !== false) { if ($deleteOldSession) { $sql = "UPDATE {$this->sessionTableName} SET id=:newID WHERE id=:oldID"; $db->createCommand($sql)->bindValue(':newID', $newID)->bindValue(':oldID', $oldID)->execute(); } else { $row['id'] = $newID; $db->createCommand()->insert($this->sessionTableName, $row); } } else { // shouldn't reach here normally $db->createCommand()->insert($this->sessionTableName, array('id' => $newID, 'expire' => time() + $this->getTimeout())); } }
/** * Updates the current session id with a newly generated one. * Please refer to {@link http://php.net/session_regenerate_id} for more details. * @param boolean $deleteOldSession Whether to delete the old associated session file or not. * @since 1.1.8 */ public function regenerateID($deleteOldSession = false) { $oldId = session_id(); parent::regenerateID(false); $newId = session_id(); $row = $this->getData($oldId); if (is_null($row)) { $this->_collection->insert(array($this->idColumn => $newId, $this->expireColumn => $this->getExipireTime()), $this->_options); } else { if ($deleteOldSession) { $this->_collection->update(array($this->idColumn => $oldId), array($this->idColumn => $newId), $this->_options); } else { $row[$this->idColumn] = $newId; unset($row['_id']); $this->_collection->insert($row, $this->_options); } } }