diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/tbl_get_field.php | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/tbl_get_field.php')
| -rw-r--r-- | srcs/phpmyadmin/tbl_get_field.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/tbl_get_field.php b/srcs/phpmyadmin/tbl_get_field.php new file mode 100644 index 0000000..898c4d9 --- /dev/null +++ b/srcs/phpmyadmin/tbl_get_field.php @@ -0,0 +1,79 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Provides download to a given field defined in parameters. + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +use PhpMyAdmin\Core; +use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Mime; +use PhpMyAdmin\Response; + +if (! defined('ROOT_PATH')) { + define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); +} + +require_once ROOT_PATH . 'libraries/common.inc.php'; + +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); + +/** @var DatabaseInterface $dbi */ +$dbi = $containerBuilder->get(DatabaseInterface::class); + +/** @var string $db */ +$db = $containerBuilder->getParameter('db'); + +/** @var string $table */ +$table = $containerBuilder->getParameter('table'); + +$response->disable(); + +/* Check parameters */ +PhpMyAdmin\Util::checkParameters( + [ + 'db', + 'table', + ] +); + +/* Select database */ +if (! $dbi->selectDb($db)) { + PhpMyAdmin\Util::mysqlDie( + sprintf(__('\'%s\' database does not exist.'), htmlspecialchars($db)), + '', + false + ); +} + +/* Check if table exists */ +if (! $dbi->getColumns($db, $table)) { + PhpMyAdmin\Util::mysqlDie(__('Invalid table name')); +} + +/* Grab data */ +$sql = 'SELECT ' . PhpMyAdmin\Util::backquote($_GET['transform_key']) + . ' FROM ' . PhpMyAdmin\Util::backquote($table) + . ' WHERE ' . $_GET['where_clause'] . ';'; +$result = $dbi->fetchValue($sql); + +/* Check return code */ +if ($result === false) { + PhpMyAdmin\Util::mysqlDie( + __('MySQL returned an empty result set (i.e. zero rows).'), + $sql + ); +} + +/* Avoid corrupting data */ +ini_set('url_rewriter.tags', ''); + +Core::downloadHeader( + $table . '-' . $_GET['transform_key'] . '.bin', + Mime::detect($result), + strlen($result) +); +echo $result; |
