003 File Manager
Current Path:
/usr/local/www/sites/shared/phpmyadmin/libraries/classes
usr
/
local
/
www
/
sites
/
shared
/
phpmyadmin
/
libraries
/
classes
/
📁
..
📄
Advisor.php
(17.87 KB)
📄
Bookmark.php
(9.85 KB)
📄
BrowseForeigners.php
(10.7 KB)
📄
CentralColumns.php
(53.12 KB)
📄
Charsets.php
(24.07 KB)
📄
CheckUserPrivileges.php
(11.58 KB)
📁
Config
📄
Config.php
(58.1 KB)
📄
Console.php
(3.58 KB)
📁
Controllers
📄
Core.php
(38.15 KB)
📄
CreateAddField.php
(17.95 KB)
📁
Database
📄
DatabaseInterface.php
(103.63 KB)
📁
Dbi
📁
Di
📁
Display
📄
Encoding.php
(8.25 KB)
📁
Engines
📄
Error.php
(12.93 KB)
📄
ErrorHandler.php
(16.32 KB)
📄
ErrorReport.php
(8.28 KB)
📄
Export.php
(40.32 KB)
📄
File.php
(20.43 KB)
📄
FileListing.php
(2.83 KB)
📄
Font.php
(4.25 KB)
📄
Footer.php
(10.47 KB)
📁
Gis
📄
Header.php
(25.81 KB)
📄
Import.php
(55.59 KB)
📄
Index.php
(24.63 KB)
📄
IndexColumn.php
(4.43 KB)
📄
InsertEdit.php
(129.1 KB)
📄
IpAllowDeny.php
(9.21 KB)
📄
Language.php
(4.3 KB)
📄
LanguageManager.php
(23.17 KB)
📄
Linter.php
(5.1 KB)
📄
ListAbstract.php
(3.15 KB)
📄
ListDatabase.php
(4.22 KB)
📄
Logging.php
(2.56 KB)
📄
Menu.php
(22.34 KB)
📄
Message.php
(19.19 KB)
📄
Mime.php
(891 B)
📄
MultSubmits.php
(23.19 KB)
📁
Navigation
📄
Normalization.php
(38.99 KB)
📄
OpenDocument.php
(8.5 KB)
📄
Operations.php
(79.4 KB)
📄
OutputBuffering.php
(3.63 KB)
📄
ParseAnalyze.php
(2.46 KB)
📄
Partition.php
(7.26 KB)
📄
Pdf.php
(4.07 KB)
📁
Plugins
📄
Plugins.php
(21.42 KB)
📁
Properties
📄
RecentFavoriteTable.php
(12.05 KB)
📄
Relation.php
(75.97 KB)
📄
RelationCleanup.php
(14.7 KB)
📄
Replication.php
(5.37 KB)
📄
ReplicationGui.php
(41.46 KB)
📄
Response.php
(16.31 KB)
📁
Rte
📄
Sanitize.php
(14.15 KB)
📄
SavedSearches.php
(11.95 KB)
📄
Scripts.php
(5.33 KB)
📁
Server
📄
Session.php
(7.68 KB)
📄
Sql.php
(87.62 KB)
📄
SqlQueryForm.php
(17.19 KB)
📄
StorageEngine.php
(13.47 KB)
📄
SubPartition.php
(3.53 KB)
📄
SysInfo.php
(1.54 KB)
📄
SysInfoBase.php
(801 B)
📄
SysInfoLinux.php
(1.96 KB)
📄
SysInfoSunOS.php
(1.87 KB)
📄
SysInfoWINNT.php
(3.1 KB)
📄
SystemDatabase.php
(3.84 KB)
📄
Table.php
(92.48 KB)
📄
Template.php
(3.91 KB)
📄
Theme.php
(10.53 KB)
📄
ThemeManager.php
(10.64 KB)
📄
Tracker.php
(29.43 KB)
📄
Tracking.php
(41.96 KB)
📄
Transformations.php
(16.12 KB)
📁
Twig
📄
TwoFactor.php
(7 KB)
📄
Types.php
(22.75 KB)
📄
Url.php
(8.02 KB)
📄
UserPassword.php
(8.26 KB)
📄
UserPreferences.php
(8.52 KB)
📄
Util.php
(162.41 KB)
📁
Utils
📄
VersionInformation.php
(6.34 KB)
📄
ZipExtension.php
(9.98 KB)
Editing: SavedSearches.php
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Saved searches managing * * @package PhpMyAdmin */ namespace PhpMyAdmin; use PhpMyAdmin\Message; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; use PhpMyAdmin\Util; /** * Saved searches managing * * @package PhpMyAdmin */ class SavedSearches { /** * Global configuration * @var array */ private $_config = null; /** * Id * @var int|null */ private $_id = null; /** * Username * @var string */ private $_username = null; /** * DB name * @var string */ private $_dbname = null; /** * Saved search name * @var string */ private $_searchName = null; /** * Criterias * @var array */ private $_criterias = null; /** * @var Relation $relation */ private $relation; /** * Public constructor * * @param array $config Global configuration */ public function __construct(array $config) { $this->setConfig($config); $this->relation = new Relation(); } /** * Setter of id * * @param int|null $searchId Id of search * * @return static */ public function setId($searchId) { $searchId = (int)$searchId; if (empty($searchId)) { $searchId = null; } $this->_id = $searchId; return $this; } /** * Getter of id * * @return int|null */ public function getId() { return $this->_id; } /** * Setter of searchName * * @param string $searchName Saved search name * * @return static */ public function setSearchName($searchName) { $this->_searchName = $searchName; return $this; } /** * Getter of searchName * * @return string */ public function getSearchName() { return $this->_searchName; } /** * Setter of config * * @param array $config Global configuration * * @return static */ public function setConfig(array $config) { $this->_config = $config; return $this; } /** * Getter of config * * @return array */ public function getConfig() { return $this->_config; } /** * Setter for criterias * * @param array|string $criterias Criterias of saved searches * @param bool $json Criterias are in JSON format * * @return static */ public function setCriterias($criterias, $json = false) { if (true === $json && is_string($criterias)) { $this->_criterias = json_decode($criterias, true); return $this; } $aListFieldsToGet = array( 'criteriaColumn', 'criteriaSort', 'criteriaShow', 'criteria', 'criteriaAndOrRow', 'criteriaAndOrColumn', 'rows', 'TableList' ); $data = array(); $data['criteriaColumnCount'] = count($criterias['criteriaColumn']); foreach ($aListFieldsToGet as $field) { if (isset($criterias[$field])) { $data[$field] = $criterias[$field]; } } /* Limit amount of rows */ if (!isset($data['rows'])) { $data['rows'] = 0; } else { $data['rows'] = min( max(0, intval($data['rows'])), 100 ); } for ($i = 0; $i <= $data['rows']; $i++) { $data['Or' . $i] = $criterias['Or' . $i]; } $this->_criterias = $data; return $this; } /** * Getter for criterias * * @return array */ public function getCriterias() { return $this->_criterias; } /** * Setter for username * * @param string $username Username * * @return static */ public function setUsername($username) { $this->_username = $username; return $this; } /** * Getter for username * * @return string */ public function getUsername() { return $this->_username; } /** * Setter for DB name * * @param string $dbname DB name * * @return static */ public function setDbname($dbname) { $this->_dbname = $dbname; return $this; } /** * Getter for DB name * * @return string */ public function getDbname() { return $this->_dbname; } /** * Save the search * * @return boolean */ public function save() { if (null == $this->getSearchName()) { $message = Message::error( __('Please provide a name for this bookmarked search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } if (null == $this->getUsername() || null == $this->getDbname() || null == $this->getSearchName() || null == $this->getCriterias() ) { $message = Message::error( __('Missing information to save the bookmarked search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->_config['cfgRelation']['db']) . "." . Util::backquote($this->_config['cfgRelation']['savedsearches']); //If it's an insert. if (null === $this->getId()) { $wheres = array( "search_name = '" . $GLOBALS['dbi']->escapeString($this->getSearchName()) . "'" ); $existingSearches = $this->getList($wheres); if (!empty($existingSearches)) { $message = Message::error( __('An entry with this name already exists.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } $sqlQuery = "INSERT INTO " . $savedSearchesTbl . "(`username`, `db_name`, `search_name`, `search_data`)" . " VALUES (" . "'" . $GLOBALS['dbi']->escapeString($this->getUsername()) . "'," . "'" . $GLOBALS['dbi']->escapeString($this->getDbname()) . "'," . "'" . $GLOBALS['dbi']->escapeString($this->getSearchName()) . "'," . "'" . $GLOBALS['dbi']->escapeString(json_encode($this->getCriterias())) . "')"; $result = (bool) $this->relation->queryAsControlUser($sqlQuery); if (!$result) { return false; } $this->setId($GLOBALS['dbi']->insertId()); return true; } //Else, it's an update. $wheres = array( "id != " . $this->getId(), "search_name = '" . $GLOBALS['dbi']->escapeString($this->getSearchName()) . "'" ); $existingSearches = $this->getList($wheres); if (!empty($existingSearches)) { $message = Message::error( __('An entry with this name already exists.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } $sqlQuery = "UPDATE " . $savedSearchesTbl . "SET `search_name` = '" . $GLOBALS['dbi']->escapeString($this->getSearchName()) . "', " . "`search_data` = '" . $GLOBALS['dbi']->escapeString(json_encode($this->getCriterias())) . "' " . "WHERE id = " . $this->getId(); return (bool) $this->relation->queryAsControlUser($sqlQuery); } /** * Delete the search * * @return boolean */ public function delete() { if (null == $this->getId()) { $message = Message::error( __('Missing information to delete the search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->_config['cfgRelation']['db']) . "." . Util::backquote($this->_config['cfgRelation']['savedsearches']); $sqlQuery = "DELETE FROM " . $savedSearchesTbl . "WHERE id = '" . $GLOBALS['dbi']->escapeString($this->getId()) . "'"; return (bool) $this->relation->queryAsControlUser($sqlQuery); } /** * Load the current search from an id. * * @return bool Success */ public function load() { if (null == $this->getId()) { $message = Message::error( __('Missing information to load the search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->_config['cfgRelation']['db']) . "." . Util::backquote($this->_config['cfgRelation']['savedsearches']); $sqlQuery = "SELECT id, search_name, search_data " . "FROM " . $savedSearchesTbl . " " . "WHERE id = '" . $GLOBALS['dbi']->escapeString($this->getId()) . "' "; $resList = $this->relation->queryAsControlUser($sqlQuery); if (false === ($oneResult = $GLOBALS['dbi']->fetchArray($resList))) { $message = Message::error(__('Error while loading the search.')); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $this->setSearchName($oneResult['search_name']) ->setCriterias($oneResult['search_data'], true); return true; } /** * Get the list of saved searches of a user on a DB * * @param string[] $wheres List of filters * * @return array List of saved searches or empty array on failure */ public function getList(array $wheres = array()) { if (null == $this->getUsername() || null == $this->getDbname() ) { return array(); } $savedSearchesTbl = Util::backquote($this->_config['cfgRelation']['db']) . "." . Util::backquote($this->_config['cfgRelation']['savedsearches']); $sqlQuery = "SELECT id, search_name " . "FROM " . $savedSearchesTbl . " " . "WHERE " . "username = '" . $GLOBALS['dbi']->escapeString($this->getUsername()) . "' " . "AND db_name = '" . $GLOBALS['dbi']->escapeString($this->getDbname()) . "' "; foreach ($wheres as $where) { $sqlQuery .= "AND " . $where . " "; } $sqlQuery .= "order by search_name ASC "; $resList = $this->relation->queryAsControlUser($sqlQuery); $list = array(); while ($oneResult = $GLOBALS['dbi']->fetchArray($resList)) { $list[$oneResult['id']] = $oneResult['search_name']; } return $list; } }
Upload File
Create Folder