aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/tbl_get_field.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/tbl_get_field.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_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.php79
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;