Linux ubuntu22 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64
nginx/1.18.0
: 128.199.27.159 | : 216.73.216.2
Cant Read [ /etc/named.conf ]
8.1.31
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
phpmyadmin /
libraries /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
Controllers
[ DIR ]
drwxr-xr-x
Database
[ DIR ]
drwxr-xr-x
Dbal
[ DIR ]
drwxr-xr-x
Display
[ DIR ]
drwxr-xr-x
Engines
[ DIR ]
drwxr-xr-x
Exceptions
[ DIR ]
drwxr-xr-x
Export
[ DIR ]
drwxr-xr-x
Gis
[ DIR ]
drwxr-xr-x
Html
[ DIR ]
drwxr-xr-x
Import
[ DIR ]
drwxr-xr-x
Navigation
[ DIR ]
drwxr-xr-x
Plugins
[ DIR ]
drwxr-xr-x
Properties
[ DIR ]
drwxr-xr-x
Providers
[ DIR ]
drwxr-xr-x
Query
[ DIR ]
drwxr-xr-x
Server
[ DIR ]
drwxr-xr-x
Setup
[ DIR ]
drwxr-xr-x
Table
[ DIR ]
drwxr-xr-x
Twig
[ DIR ]
drwxr-xr-x
Utils
[ DIR ]
drwxr-xr-x
Advisor.php
12.22
KB
-rw-r--r--
Bookmark.php
10.69
KB
-rw-r--r--
BrowseForeigners.php
10.82
KB
-rw-r--r--
Charsets.php
7.1
KB
-rw-r--r--
CheckUserPrivileges.php
11.94
KB
-rw-r--r--
Config.php
45.37
KB
-rw-r--r--
Console.php
3.38
KB
-rw-r--r--
Core.php
42.33
KB
-rw-r--r--
CreateAddField.php
17.57
KB
-rw-r--r--
DatabaseInterface.php
75
KB
-rw-r--r--
DbTableExists.php
3.21
KB
-rw-r--r--
Encoding.php
8.51
KB
-rw-r--r--
Error.php
13.97
KB
-rw-r--r--
ErrorHandler.php
17.15
KB
-rw-r--r--
ErrorReport.php
9.14
KB
-rw-r--r--
Export.php
46.24
KB
-rw-r--r--
File.php
21.28
KB
-rw-r--r--
FileListing.php
2.85
KB
-rw-r--r--
Font.php
5.58
KB
-rw-r--r--
Footer.php
10.54
KB
-rw-r--r--
Git.php
17.95
KB
-rw-r--r--
Header.php
21.45
KB
-rw-r--r--
Import.php
57.46
KB
-rw-r--r--
Index.php
15.07
KB
-rw-r--r--
IndexColumn.php
4.23
KB
-rw-r--r--
InsertEdit.php
130.18
KB
-rw-r--r--
InternalRelations.php
17.31
KB
-rw-r--r--
IpAllowDeny.php
9.76
KB
-rw-r--r--
Language.php
4.46
KB
-rw-r--r--
LanguageManager.php
23.96
KB
-rw-r--r--
Linter.php
5.25
KB
-rw-r--r--
ListAbstract.php
1.77
KB
-rw-r--r--
ListDatabase.php
4.3
KB
-rw-r--r--
Logging.php
2.72
KB
-rw-r--r--
Menu.php
21.3
KB
-rw-r--r--
Message.php
19.09
KB
-rw-r--r--
Mime.php
916
B
-rw-r--r--
Normalization.php
41.48
KB
-rw-r--r--
OpenDocument.php
8.42
KB
-rw-r--r--
Operations.php
37.84
KB
-rw-r--r--
OutputBuffering.php
3.98
KB
-rw-r--r--
ParseAnalyze.php
2.37
KB
-rw-r--r--
Partition.php
7.17
KB
-rw-r--r--
Pdf.php
4.34
KB
-rw-r--r--
Plugins.php
25.18
KB
-rw-r--r--
Profiling.php
2.26
KB
-rw-r--r--
RecentFavoriteTable.php
12.01
KB
-rw-r--r--
Relation.php
77.39
KB
-rw-r--r--
RelationCleanup.php
14.7
KB
-rw-r--r--
Replication.php
4.73
KB
-rw-r--r--
ReplicationGui.php
21.52
KB
-rw-r--r--
ReplicationInfo.php
4.83
KB
-rw-r--r--
Response.php
16.47
KB
-rw-r--r--
Routing.php
5.71
KB
-rw-r--r--
Sanitize.php
12.13
KB
-rw-r--r--
SavedSearches.php
11.93
KB
-rw-r--r--
Scripts.php
3.64
KB
-rw-r--r--
Session.php
8.01
KB
-rw-r--r--
Sql.php
66.67
KB
-rw-r--r--
SqlQueryForm.php
7.12
KB
-rw-r--r--
StorageEngine.php
12.53
KB
-rw-r--r--
SubPartition.php
3.32
KB
-rw-r--r--
SystemDatabase.php
3.66
KB
-rw-r--r--
Table.php
95.67
KB
-rw-r--r--
TablePartitionDefinition.php
6.51
KB
-rw-r--r--
Template.php
3.87
KB
-rw-r--r--
Theme.php
8.76
KB
-rw-r--r--
ThemeManager.php
9.58
KB
-rw-r--r--
Tracker.php
29.78
KB
-rw-r--r--
Tracking.php
37.25
KB
-rw-r--r--
Transformations.php
16.29
KB
-rw-r--r--
TwoFactor.php
6.8
KB
-rw-r--r--
Types.php
25.2
KB
-rw-r--r--
Url.php
8.76
KB
-rw-r--r--
UserPassword.php
7.11
KB
-rw-r--r--
UserPreferences.php
8.45
KB
-rw-r--r--
Util.php
102.31
KB
-rw-r--r--
Version.php
533
B
-rw-r--r--
VersionInformation.php
7.15
KB
-rw-r--r--
ZipExtension.php
10.76
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : RecentFavoriteTable.php
<?php /** * Recent and Favorite table list handling */ declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\Html\Generator; use const SORT_REGULAR; use function array_key_exists; use function array_merge; use function array_pop; use function array_unique; use function array_unshift; use function count; use function htmlspecialchars; use function json_decode; use function json_encode; use function max; use function md5; use function ucfirst; /** * Handles the recently used and favorite tables. * * @TODO Change the release version in table pma_recent * (#recent in documentation) */ class RecentFavoriteTable { /** * Reference to session variable containing recently used or favorite tables. * * @access private * @var array */ private $tables; /** * Defines type of action, Favorite or Recent table. * * @access private * @var string */ private $tableType; /** * RecentFavoriteTable instances. * * @access private * @var array */ private static $instances = []; /** @var Relation */ private $relation; /** * Creates a new instance of RecentFavoriteTable * * @param string $type the table type * * @access private */ private function __construct($type) { global $dbi; $this->relation = new Relation($dbi); $this->tableType = $type; $server_id = $GLOBALS['server']; if (! isset($_SESSION['tmpval'][$this->tableType . 'Tables'][$server_id]) ) { $_SESSION['tmpval'][$this->tableType . 'Tables'][$server_id] = $this->getPmaTable() ? $this->getFromDb() : []; } $this->tables =& $_SESSION['tmpval'][$this->tableType . 'Tables'][$server_id]; } /** * Returns class instance. * * @param string $type the table type * * @return RecentFavoriteTable */ public static function getInstance($type) { if (! array_key_exists($type, self::$instances)) { self::$instances[$type] = new RecentFavoriteTable($type); } return self::$instances[$type]; } /** * Returns the recent/favorite tables array * * @return array */ public function getTables() { return $this->tables; } /** * Returns recently used tables or favorite from phpMyAdmin database. * * @return array */ public function getFromDb() { global $dbi; // Read from phpMyAdmin database, if recent tables is not in session $sql_query = ' SELECT `tables` FROM ' . $this->getPmaTable() . " WHERE `username` = '" . $dbi->escapeString($GLOBALS['cfg']['Server']['user']) . "'"; $return = []; $result = $this->relation->queryAsControlUser($sql_query, false); if ($result) { $row = $dbi->fetchArray($result); if (isset($row[0])) { $return = json_decode($row[0], true); } } return $return; } /** * Save recent/favorite tables into phpMyAdmin database. * * @return true|Message */ public function saveToDb() { global $dbi; $username = $GLOBALS['cfg']['Server']['user']; $sql_query = ' REPLACE INTO ' . $this->getPmaTable() . ' (`username`, `tables`)' . " VALUES ('" . $dbi->escapeString($username) . "', '" . $dbi->escapeString( json_encode($this->tables) ) . "')"; $success = $dbi->tryQuery($sql_query, DatabaseInterface::CONNECT_CONTROL); if (! $success) { $error_msg = ''; switch ($this->tableType) { case 'recent': $error_msg = __('Could not save recent table!'); break; case 'favorite': $error_msg = __('Could not save favorite table!'); break; } $message = Message::error($error_msg); $message->addMessage( Message::rawError( $dbi->getError(DatabaseInterface::CONNECT_CONTROL) ), '<br><br>' ); return $message; } return true; } /** * Trim recent.favorite table according to the * NumRecentTables/NumFavoriteTables configuration. * * @return bool True if trimming occurred */ public function trim() { $max = max( $GLOBALS['cfg']['Num' . ucfirst($this->tableType) . 'Tables'], 0 ); $trimming_occurred = count($this->tables) > $max; while (count($this->tables) > $max) { array_pop($this->tables); } return $trimming_occurred; } /** * Return HTML ul. * * @return string */ public function getHtmlList() { $html = ''; if (count($this->tables)) { if ($this->tableType === 'recent') { foreach ($this->tables as $table) { $html .= '<li class="warp_link">'; $recent_url = Url::getFromRoute('/table/recent-favorite', [ 'db' => $table['db'], 'table' => $table['table'], ]); $html .= '<a href="' . $recent_url . '">`' . htmlspecialchars($table['db']) . '`.`' . htmlspecialchars($table['table']) . '`</a>'; $html .= '</li>'; } } else { foreach ($this->tables as $table) { $html .= '<li class="warp_link">'; $html .= '<a class="ajax favorite_table_anchor" '; $fav_rm_url = Url::getFromRoute('/database/structure/favorite-table', [ 'db' => $table['db'], 'ajax_request' => true, 'favorite_table' => $table['table'], 'remove_favorite' => true, ]); $html .= 'href="' . $fav_rm_url . '" title="' . __('Remove from Favorites') . '" data-favtargetn="' . md5($table['db'] . '.' . $table['table']) . '" >' . Generator::getIcon('b_favorite') . '</a>'; $table_url = Url::getFromRoute('/table/recent-favorite', [ 'db' => $table['db'], 'table' => $table['table'], ]); $html .= '<a href="' . $table_url . '">`' . htmlspecialchars($table['db']) . '`.`' . htmlspecialchars($table['table']) . '`</a>'; $html .= '</li>'; } } } else { $html .= '<li class="warp_link">' . ($this->tableType === 'recent' ? __('There are no recent tables.') : __('There are no favorite tables.')) . '</li>'; } return $html; } /** * Return HTML. * * @return string */ public function getHtml() { $html = '<div class="drop_list">'; if ($this->tableType === 'recent') { $html .= '<button title="' . __('Recent tables') . '" class="drop_button btn">' . __('Recent') . '</button><ul id="pma_recent_list">'; } else { $html .= '<button title="' . __('Favorite tables') . '" class="drop_button btn">' . __('Favorites') . '</button><ul id="pma_favorite_list">'; } $html .= $this->getHtmlList(); $html .= '</ul></div>'; return $html; } /** * Add recently used or favorite tables. * * @param string $db database name where the table is located * @param string $table table name * * @return true|Message True if success, Message if not */ public function add($db, $table) { global $dbi; // If table does not exist, do not add._getPmaTable() if (! $dbi->getColumns($db, $table)) { return true; } $table_arr = []; $table_arr['db'] = $db; $table_arr['table'] = $table; // add only if this is new table if (! isset($this->tables[0]) || $this->tables[0] != $table_arr) { array_unshift($this->tables, $table_arr); $this->tables = array_merge(array_unique($this->tables, SORT_REGULAR)); $this->trim(); if ($this->getPmaTable()) { return $this->saveToDb(); } } return true; } /** * Removes recent/favorite tables that don't exist. * * @param string $db database * @param string $table table * * @return bool|Message True if invalid and removed, False if not invalid, * Message if error while removing */ public function removeIfInvalid($db, $table) { global $dbi; foreach ($this->tables as $tbl) { if ($tbl['db'] != $db || $tbl['table'] != $table) { continue; } // TODO Figure out a better way to find the existence of a table if (! $dbi->getColumns($tbl['db'], $tbl['table'])) { return $this->remove($tbl['db'], $tbl['table']); } } return false; } /** * Remove favorite tables. * * @param string $db database name where the table is located * @param string $table table name * * @return true|Message True if success, Message if not */ public function remove($db, $table) { foreach ($this->tables as $key => $value) { if ($value['db'] != $db || $value['table'] != $table) { continue; } unset($this->tables[$key]); } if ($this->getPmaTable()) { return $this->saveToDb(); } return true; } /** * Generate Html for sync Favorite tables anchor. (from localStorage to pmadb) * * @return string */ public function getHtmlSyncFavoriteTables() { $retval = ''; $server_id = $GLOBALS['server']; if ($server_id == 0) { return ''; } $cfgRelation = $this->relation->getRelationsParam(); // Not to show this once list is synchronized. if ($cfgRelation['favoritework'] && ! isset($_SESSION['tmpval']['favorites_synced'][$server_id])) { $url = Url::getFromRoute('/database/structure/favorite-table', [ 'ajax_request' => true, 'favorite_table' => true, 'sync_favorite_tables' => true, ]); $retval = '<a class="hide" id="sync_favorite_tables"'; $retval .= ' href="' . $url . '"></a>'; } return $retval; } /** * Generate Html to update recent tables. * * @return string html */ public static function getHtmlUpdateRecentTables() { $retval = '<a class="hide" id="update_recent_tables" href="'; $retval .= Url::getFromRoute('/recent-table', [ 'ajax_request' => true, 'recent_table' => true, ]); $retval .= '"></a>'; return $retval; } /** * Return the name of the configuration storage table * * @return string|null pma table name */ private function getPmaTable(): ?string { $cfgRelation = $this->relation->getRelationsParam(); if (! $cfgRelation['recentwork']) { return null; } if (! empty($cfgRelation['db']) && ! empty($cfgRelation[$this->tableType]) ) { return Util::backquote($cfgRelation['db']) . '.' . Util::backquote($cfgRelation[$this->tableType]); } return null; } }
Close