ajax.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Generic AJAX endpoint for getting information about database
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. use PhpMyAdmin\Response;
  9. use PhpMyAdmin\Util;
  10. use PhpMyAdmin\Core;
  11. $_GET['ajax_request'] = 'true';
  12. require_once 'libraries/common.inc.php';
  13. $response = Response::getInstance();
  14. $response->setAJAX(true);
  15. if (empty($_POST['type'])) {
  16. Core::fatalError(__('Bad type!'));
  17. }
  18. switch ($_POST['type']) {
  19. case 'list-databases':
  20. $response->addJSON('databases', $GLOBALS['dblist']->databases);
  21. break;
  22. case 'list-tables':
  23. Util::checkParameters(array('db'), true);
  24. $response->addJSON('tables', $GLOBALS['dbi']->getTables($_POST['db']));
  25. break;
  26. case 'list-columns':
  27. Util::checkParameters(array('db', 'table'), true);
  28. $response->addJSON('columns', $GLOBALS['dbi']->getColumnNames($_POST['db'], $_POST['table']));
  29. break;
  30. case 'config-get':
  31. Util::checkParameters(array('key'), true);
  32. $response->addJSON('value', $GLOBALS['PMA_Config']->get($_POST['key']));
  33. break;
  34. case 'config-set':
  35. Util::checkParameters(array('key', 'value'), true);
  36. $result = $GLOBALS['PMA_Config']->setUserValue(null, $_POST['key'], json_decode($_POST['value']));
  37. if ($result !== true) {
  38. $response = Response::getInstance();
  39. $response->setRequestStatus(false);
  40. $response->addJSON('message', $result);
  41. }
  42. break;
  43. default:
  44. Core::fatalError(__('Bad type!'));
  45. }