/
var
/
www
/
vhosts
/
nabawater
/
vendor
/
yiisoft
/
yii2
/
web
/
/var/www/vhosts/nabawater/vendor/yiisoft/yii2/web
mkdir
upload
Name
Size
Mode
Actions
migrations/
-
0755
rm
Application.php
5836
0644
edit
dl
rm
AssetBundle.php
8602
0644
edit
dl
rm
AssetConverter.php
4599
0644
edit
dl
rm
AssetConverterInterface.php
698
0644
edit
dl
rm
AssetManager.php
25586
0644
edit
dl
rm
BadRequestHttpException.php
1077
0644
edit
dl
rm
CacheSession.php
3673
0644
edit
dl
rm
CompositeUrlRule.php
4482
0644
edit
dl
rm
ConflictHttpException.php
814
0644
edit
dl
rm
Controller.php
9739
0644
edit
dl
rm
Cookie.php
2002
0644
edit
dl
rm
CookieCollection.php
8094
0644
edit
dl
rm
DbSession.php
7628
0644
edit
dl
rm
ErrorAction.php
6092
0644
edit
dl
rm
ErrorHandler.php
19141
0644
edit
dl
rm
ForbiddenHttpException.php
1126
0644
edit
dl
rm
GoneHttpException.php
1073
0644
edit
dl
rm
GroupUrlRule.php
4696
0644
edit
dl
rm
HeaderCollection.php
7236
0644
edit
dl
rm
HeadersAlreadySentException.php
700
0644
edit
dl
rm
HtmlResponseFormatter.php
1092
0644
edit
dl
rm
HttpException.php
1760
0644
edit
dl
rm
IdentityInterface.php
3661
0644
edit
dl
rm
JqueryAsset.php
459
0644
edit
dl
rm
JsExpression.php
1253
0644
edit
dl
rm
JsonParser.php
1731
0644
edit
dl
rm
JsonResponseFormatter.php
4677
0644
edit
dl
rm
Link.php
2078
0644
edit
dl
rm
Linkable.php
1109
0644
edit
dl
rm
MethodNotAllowedHttpException.php
833
0644
edit
dl
rm
MultiFieldSession.php
4614
0644
edit
dl
rm
MultipartFormDataParser.php
12271
0644
edit
dl
rm
NotAcceptableHttpException.php
1063
0644
edit
dl
rm
NotFoundHttpException.php
808
0644
edit
dl
rm
RangeNotSatisfiableHttpException.php
1212
0644
edit
dl
rm
Request.php
65615
0644
edit
dl
rm
RequestParserInterface.php
669
0644
edit
dl
rm
Response.php
41354
0644
edit
dl
rm
ResponseFormatterInterface.php
543
0644
edit
dl
rm
ServerErrorHttpException.php
827
0644
edit
dl
rm
Session.php
34578
0644
edit
dl
rm
SessionIterator.php
1978
0644
edit
dl
rm
TooManyRequestsHttpException.php
1019
0644
edit
dl
rm
UnauthorizedHttpException.php
1153
0644
edit
dl
rm
UnprocessableEntityHttpException.php
1120
0644
edit
dl
rm
UnsupportedMediaTypeHttpException.php
1094
0644
edit
dl
rm
UploadedFile.php
8836
0644
edit
dl
rm
UrlManager.php
25872
0644
edit
dl
rm
UrlNormalizer.php
5103
0644
edit
dl
rm
UrlNormalizerRedirectException.php
1758
0644
edit
dl
rm
UrlRule.php
21707
0644
edit
dl
rm
UrlRuleInterface.php
1223
0644
edit
dl
rm
User.php
33110
0644
edit
dl
rm
UserEvent.php
1229
0644
edit
dl
rm
View.php
23745
0644
edit
dl
rm
ViewAction.php
4718
0644
edit
dl
rm
XmlResponseFormatter.php
5667
0644
edit
dl
rm
YiiAsset.php
504
0644
edit
dl
rm
Edit:
/var/www/vhosts/nabawater/vendor/yiisoft/yii2/web/DbSession.php
(7628B)
<?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ namespace yii\web; use Yii; use yii\base\InvalidConfigException; use yii\db\Connection; use yii\db\PdoValue; use yii\db\Query; use yii\di\Instance; use yii\helpers\ArrayHelper; /** * DbSession extends [[Session]] by using database as session data storage. * * By default, DbSession stores session data in a DB table named 'session'. This table * must be pre-created. The table name can be changed by setting [[sessionTable]]. * * The following example shows how you can configure the application to use DbSession: * Add the following to your application config under `components`: * * ```php * 'session' => [ * 'class' => 'yii\web\DbSession', * // 'db' => 'mydb', * // 'sessionTable' => 'my_session', * ] * ``` * * DbSession extends [[MultiFieldSession]], thus it allows saving extra fields into the [[sessionTable]]. * Refer to [[MultiFieldSession]] for more details. * * @author Qiang Xue <qiang.xue@gmail.com> * @since 2.0 */ class DbSession extends MultiFieldSession { /** * @var Connection|array|string the DB connection object or the application component ID of the DB connection. * After the DbSession object is created, if you want to change this property, you should only assign it * with a DB connection object. * Starting from version 2.0.2, this can also be a configuration array for creating the object. */ public $db = 'db'; /** * @var string the name of the DB table that stores the session data. * The table should be pre-created as follows: * * ```sql * CREATE TABLE session * ( * id CHAR(40) NOT NULL PRIMARY KEY, * expire INTEGER, * data BLOB * ) * ``` * * where 'BLOB' refers to the BLOB-type of your preferred DBMS. Below are the BLOB type * that can be used for some popular DBMS: * * - MySQL: LONGBLOB * - PostgreSQL: BYTEA * - MSSQL: BLOB * * When using DbSession in a production server, we recommend you create a DB index for the 'expire' * column in the session table to improve the performance. * * Note that according to the php.ini setting of `session.hash_function`, you may need to adjust * the length of the `id` column. For example, if `session.hash_function=sha256`, you should use * length 64 instead of 40. */ public $sessionTable = '{{%session}}'; /** * Initializes the DbSession component. * This method will initialize the [[db]] property to make sure it refers to a valid DB connection. * @throws InvalidConfigException if [[db]] is invalid. */ public function init() { parent::init(); $this->db = Instance::ensure($this->db, Connection::className()); } /** * Updates the current session ID with a newly generated one . * Please refer to <http://php.net/session_regenerate_id> for more details. * @param bool $deleteOldSession Whether to delete the old associated session file or not. */ 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(); // if session id regeneration failed, no need to create/update it. if (empty($newID)) { Yii::warning('Failed to generate new session ID', __METHOD__); return; } $row = $this->db->useMaster(function() use ($oldID) { return (new Query())->from($this->sessionTable) ->where(['id' => $oldID]) ->createCommand($this->db) ->queryOne(); }); if ($row !== false) { if ($deleteOldSession) { $this->db->createCommand() ->update($this->sessionTable, ['id' => $newID], ['id' => $oldID]) ->execute(); } else { $row['id'] = $newID; $this->db->createCommand() ->insert($this->sessionTable, $row) ->execute(); } } else { // shouldn't reach here normally $this->db->createCommand() ->insert($this->sessionTable, $this->composeFields($newID, '')) ->execute(); } } /** * Session read handler. * @internal Do not call this method directly. * @param string $id session ID * @return string the session data */ public function readSession($id) { $query = new Query(); $query->from($this->sessionTable) ->where('[[expire]]>:expire AND [[id]]=:id', [':expire' => time(), ':id' => $id]); if ($this->readCallback !== null) { $fields = $query->one($this->db); return $fields === false ? '' : $this->extractData($fields); } $data = $query->select(['data'])->scalar($this->db); return $data === false ? '' : $data; } /** * Session write handler. * @internal Do not call this method directly. * @param string $id session ID * @param string $data session data * @return bool whether session write is successful */ public function writeSession($id, $data) { // exception must be caught in session write handler // http://us.php.net/manual/en/function.session-set-save-handler.php#refsect1-function.session-set-save-handler-notes try { $fields = $this->composeFields($id, $data); $fields = $this->typecastFields($fields); $this->db->createCommand()->upsert($this->sessionTable, $fields)->execute(); } catch (\Exception $e) { Yii::$app->errorHandler->handleException($e); return false; } return true; } /** * Session destroy handler. * @internal Do not call this method directly. * @param string $id session ID * @return bool whether session is destroyed successfully */ public function destroySession($id) { $this->db->createCommand() ->delete($this->sessionTable, ['id' => $id]) ->execute(); return true; } /** * Session GC (garbage collection) handler. * @internal Do not call this method directly. * @param int $maxLifetime the number of seconds after which data will be seen as 'garbage' and cleaned up. * @return bool whether session is GCed successfully */ public function gcSession($maxLifetime) { $this->db->createCommand() ->delete($this->sessionTable, '[[expire]]<:expire', [':expire' => time()]) ->execute(); return true; } /** * Method typecasts $fields before passing them to PDO. * Default implementation casts field `data` to `\PDO::PARAM_LOB`. * You can override this method in case you need special type casting. * * @param array $fields Fields, that will be passed to PDO. Key - name, Value - value * @return array * @since 2.0.13 */ protected function typecastFields($fields) { if (isset($fields['data']) && !is_array($fields['data']) && !is_object($fields['data'])) { $fields['data'] = new PdoValue($fields['data'], \PDO::PARAM_LOB); } return $fields; } }
Save
cmd:
run