Hackfut Security File Manager
Current Path:
/mnt/ceph/services/websiteos/phpmyadmin/phpMyAdmin-5.0.4-all-languages
mnt
/
ceph
/
services
/
websiteos
/
phpmyadmin
/
phpMyAdmin-5.0.4-all-languages
/
📁
..
📄
CONTRIBUTING.md
(2.53 KB)
📄
ChangeLog
(32.24 KB)
📄
LICENSE
(17.67 KB)
📄
README
(1.48 KB)
📄
RELEASE-DATE-5.0.4
(29 B)
📄
ajax.php
(1.96 KB)
📄
browse_foreigners.php
(1.77 KB)
📄
changelog.php
(3.04 KB)
📄
chk_rel.php
(1.16 KB)
📄
composer.json
(3.47 KB)
📄
composer.lock
(170.01 KB)
📄
config.inc.php
(317 B)
📁
config_template
📄
db_central_columns.php
(4.5 KB)
📄
db_datadict.php
(730 B)
📄
db_designer.php
(7.6 KB)
📄
db_events.php
(1.96 KB)
📄
db_export.php
(5 KB)
📄
db_import.php
(1.08 KB)
📄
db_multi_table_query.php
(1.42 KB)
📄
db_operations.php
(9.64 KB)
📄
db_qbe.php
(5.19 KB)
📄
db_routines.php
(2.2 KB)
📄
db_search.php
(2.17 KB)
📄
db_sql.php
(1.18 KB)
📄
db_sql_autocomplete.php
(1.01 KB)
📄
db_sql_format.php
(613 B)
📄
db_structure.php
(2 KB)
📄
db_tracking.php
(3.58 KB)
📄
db_triggers.php
(1.96 KB)
📁
doc
📄
error_report.php
(4.64 KB)
📁
examples
📄
export.php
(16.93 KB)
📄
favicon.ico
(21.96 KB)
📄
gis_data_editor.php
(3.83 KB)
📄
import.php
(24.03 KB)
📄
import_status.php
(3.65 KB)
📄
index.php
(3.01 KB)
📁
js
📁
libraries
📄
license.php
(1021 B)
📄
lint.php
(1.52 KB)
📁
locale
📁
login
📄
logout.php
(437 B)
📄
navigation.php
(2.58 KB)
📄
normalization.php
(4.48 KB)
📄
package.json
(1.42 KB)
📄
phpinfo.php
(633 B)
📄
prefs_forms.php
(3.02 KB)
📄
prefs_manage.php
(7.29 KB)
📄
prefs_twofactor.php
(1.93 KB)
📄
print.css
(1.18 KB)
📄
robots.txt
(26 B)
📄
schema_export.php
(861 B)
📄
server_binlog.php
(733 B)
📄
server_collations.php
(626 B)
📄
server_databases.php
(1.74 KB)
📄
server_engines.php
(797 B)
📄
server_export.php
(1.22 KB)
📄
server_import.php
(833 B)
📄
server_plugins.php
(595 B)
📄
server_privileges.php
(14.8 KB)
📄
server_replication.php
(1.57 KB)
📄
server_sql.php
(1.06 KB)
📄
server_status.php
(1.01 KB)
📄
server_status_advisor.php
(885 B)
📄
server_status_monitor.php
(3.22 KB)
📄
server_status_processes.php
(1.78 KB)
📄
server_status_queries.php
(1.34 KB)
📄
server_status_variables.php
(1.31 KB)
📄
server_user_groups.php
(2.16 KB)
📄
server_variables.php
(1.08 KB)
📄
services.yml
(3.09 KB)
📄
services_controllers.yml
(8.4 KB)
📁
setup
📄
show_config_errors.php
(1.23 KB)
📁
sql
📄
sql.php
(6.73 KB)
📄
tbl_addfield.php
(4.33 KB)
📄
tbl_change.php
(6.86 KB)
📄
tbl_chart.php
(1.13 KB)
📄
tbl_create.php
(3.92 KB)
📄
tbl_export.php
(2.9 KB)
📄
tbl_find_replace.php
(1.29 KB)
📄
tbl_get_field.php
(2.05 KB)
📄
tbl_gis_visualization.php
(1.64 KB)
📄
tbl_import.php
(895 B)
📄
tbl_indexes.php
(1.23 KB)
📄
tbl_operations.php
(15.43 KB)
📄
tbl_recent_favorite.php
(590 B)
📄
tbl_relation.php
(2.81 KB)
📄
tbl_replace.php
(17.51 KB)
📄
tbl_row_action.php
(5.48 KB)
📄
tbl_select.php
(1.29 KB)
📄
tbl_sql.php
(1.23 KB)
📄
tbl_structure.php
(2.31 KB)
📄
tbl_tracking.php
(5.33 KB)
📄
tbl_triggers.php
(265 B)
📄
tbl_zoom_select.php
(1.22 KB)
📁
templates
📁
themes
📄
themes.php
(894 B)
📄
transformation_overview.php
(846 B)
📄
transformation_wrapper.php
(5.26 KB)
📄
url.php
(1.56 KB)
📄
user_password.php
(2.18 KB)
📁
vendor
📄
version_check.php
(1.17 KB)
📄
view_create.php
(7.02 KB)
📄
view_operations.php
(3.45 KB)
📄
yarn.lock
(109.31 KB)
Editing: view_create.php
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * handles creation of VIEWs * * @todo js error when view name is empty (strFormEmpty) * @todo (also validate if js is disabled, after form submission?) * @package PhpMyAdmin */ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Message; use PhpMyAdmin\Response; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\TokensList; use PhpMyAdmin\Template; use PhpMyAdmin\Util; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } global $text_dir; require_once ROOT_PATH . 'libraries/common.inc.php'; require ROOT_PATH . 'libraries/db_common.inc.php'; /** @var Response $response */ $response = $containerBuilder->get(Response::class); /** @var DatabaseInterface $dbi */ $dbi = $containerBuilder->get(DatabaseInterface::class); $url_params['goto'] = 'tbl_structure.php'; $url_params['back'] = 'view_create.php'; /** @var Template $template */ $template = $containerBuilder->get('template'); $view_algorithm_options = [ 'UNDEFINED', 'MERGE', 'TEMPTABLE', ]; $view_with_options = [ 'CASCADED', 'LOCAL', ]; $view_security_options = [ 'DEFINER', 'INVOKER', ]; // View name is a compulsory field if (isset($_POST['view']['name']) && empty($_POST['view']['name']) ) { $message = Message::error(__('View name can not be empty!')); $response->addJSON( 'message', $message ); $response->setRequestStatus(false); exit; } if (isset($_POST['createview']) || isset($_POST['alterview'])) { /** * Creates the view */ $sep = "\r\n"; if (isset($_POST['createview'])) { $sql_query = 'CREATE'; if (isset($_POST['view']['or_replace'])) { $sql_query .= ' OR REPLACE'; } } else { $sql_query = 'ALTER'; } if (Core::isValid($_POST['view']['algorithm'], $view_algorithm_options)) { $sql_query .= $sep . ' ALGORITHM = ' . $_POST['view']['algorithm']; } if (! empty($_POST['view']['definer'])) { if (strpos($_POST['view']['definer'], '@') === false) { $sql_query .= $sep . 'DEFINER=' . Util::backquote($_POST['view']['definer']); } else { $arr = explode('@', $_POST['view']['definer']); $sql_query .= $sep . 'DEFINER=' . Util::backquote($arr[0]); $sql_query .= '@' . Util::backquote($arr[1]) . ' '; } } if (isset($_POST['view']['sql_security']) && in_array($_POST['view']['sql_security'], $view_security_options)) { $sql_query .= $sep . ' SQL SECURITY ' . $_POST['view']['sql_security']; } $sql_query .= $sep . ' VIEW ' . Util::backquote($_POST['view']['name']); if (! empty($_POST['view']['column_names'])) { $sql_query .= $sep . ' (' . $_POST['view']['column_names'] . ')'; } $sql_query .= $sep . ' AS ' . $_POST['view']['as']; if (isset($_POST['view']['with'])) { if (in_array($_POST['view']['with'], $view_with_options)) { $sql_query .= $sep . ' WITH ' . $_POST['view']['with'] . ' CHECK OPTION'; } } if (! $dbi->tryQuery($sql_query)) { if (! isset($_POST['ajax_dialog'])) { $message = Message::rawError($dbi->getError()); return; } $response->addJSON( 'message', Message::error( "<i>" . htmlspecialchars($sql_query) . "</i><br><br>" . $dbi->getError() ) ); $response->setRequestStatus(false); exit; } // If different column names defined for VIEW $view_columns = []; if (isset($_POST['view']['column_names'])) { $view_columns = explode(',', $_POST['view']['column_names']); } $column_map = $dbi->getColumnMapFromSql( $_POST['view']['as'], $view_columns ); $systemDb = $dbi->getSystemDatabase(); $pma_transformation_data = $systemDb->getExistingTransformationData( $GLOBALS['db'] ); if ($pma_transformation_data !== false) { // SQL for store new transformation details of VIEW $new_transformations_sql = $systemDb->getNewTransformationDataSql( $pma_transformation_data, $column_map, $_POST['view']['name'], $GLOBALS['db'] ); // Store new transformations if ($new_transformations_sql != '') { $dbi->tryQuery($new_transformations_sql); } } unset($pma_transformation_data); if (! isset($_POST['ajax_dialog'])) { $message = Message::success(); include ROOT_PATH . 'tbl_structure.php'; } else { $response->addJSON( 'message', Util::getMessage( Message::success(), $sql_query ) ); $response->setRequestStatus(true); } exit; } $sql_query = ! empty($_POST['sql_query']) ? $_POST['sql_query'] : ''; // prefill values if not already filled from former submission $view = [ 'operation' => 'create', 'or_replace' => '', 'algorithm' => '', 'definer' => '', 'sql_security' => '', 'name' => '', 'column_names' => '', 'as' => $sql_query, 'with' => '', ]; // Used to prefill the fields when editing a view if (isset($_GET['db']) && isset($_GET['table'])) { $item = $dbi->fetchSingleRow( sprintf( "SELECT `VIEW_DEFINITION`, `CHECK_OPTION`, `DEFINER`, `SECURITY_TYPE` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s';", $dbi->escapeString($_GET['db']), $dbi->escapeString($_GET['table']) ) ); $createView = $dbi->getTable($_GET['db'], $_GET['table']) ->showCreate(); // CREATE ALGORITHM=<ALGORITHM> DE... $parts = explode(" ", substr($createView, 17)); $item['ALGORITHM'] = $parts[0]; $view['operation'] = 'alter'; $view['definer'] = $item['DEFINER']; $view['sql_security'] = $item['SECURITY_TYPE']; $view['name'] = $_GET['table']; $view['as'] = $item['VIEW_DEFINITION']; $view['with'] = $item['CHECK_OPTION']; $view['algorithm'] = $item['ALGORITHM']; if (empty($view['as']) && is_string($createView)) { $parser = new Parser($createView); /** * @var CreateStatement $stmt */ $stmt = $parser->statements[0]; $view['as'] = isset($stmt->body) ? TokensList::build($stmt->body) : $view['as']; } } if (Core::isValid($_POST['view'], 'array')) { $view = array_merge($view, $_POST['view']); } $url_params['db'] = $GLOBALS['db']; $url_params['reload'] = 1; echo $template->render('view_create', [ 'ajax_dialog' => isset($_POST['ajax_dialog']), 'text_dir' => $text_dir, 'url_params' => $url_params, 'view' => $view, 'view_algorithm_options' => $view_algorithm_options, 'view_with_options' => $view_with_options, 'view_security_options' => $view_security_options, ]);
Upload File
Create Folder