common.inc.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. require __DIR__ . '/../predis/autoload.php';
  3. define('PHPREDIS_ADMIN_PATH', dirname(__DIR__)); # 等效于 dirname(dirname(__FILE__))
  4. #
  5. // Undo magic quotes (both in keys and values)
  6. if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
  7. $process = array(&$_GET, &$_POST);
  8. while (list($key, $val) = each($process)) {
  9. foreach ($val as $k => $v) {
  10. unset($process[$key][$k]);
  11. if (is_array($v)) {
  12. $process[$key][stripslashes($k)] = $v;
  13. $process[] = &$process[$key][stripslashes($k)];
  14. } else {
  15. $process[$key][stripslashes($k)] = stripslashes($v);
  16. }
  17. }
  18. }
  19. unset($process);
  20. }
  21. // These includes are needed by each script.
  22. if (file_exists(PHPREDIS_ADMIN_PATH . '/includes/config.inc.php')) {
  23. require_once PHPREDIS_ADMIN_PATH . '/includes/config.inc.php';
  24. } else {
  25. require_once PHPREDIS_ADMIN_PATH . '/includes/config.sample.inc.php';
  26. }
  27. require_once PHPREDIS_ADMIN_PATH . '/includes/functions.inc.php';
  28. require_once PHPREDIS_ADMIN_PATH . '/includes/page.inc.php';
  29. if (isset($config['login'])) {
  30. require_once PHPREDIS_ADMIN_PATH . '/includes/login.inc.php';
  31. }
  32. if (isset($login['servers'])) {
  33. $i = current($login['servers']);
  34. } else {
  35. $i = 0;
  36. }
  37. if (isset($_GET['s']) && is_numeric($_GET['s']) && ($_GET['s'] < count($config['servers']))) {
  38. $i = $_GET['s'];
  39. }
  40. $server = $config['servers'][$i];
  41. $server['id'] = $i;
  42. $server['charset'] = isset($server['charset']) && $server['charset'] ? $server['charset'] : false;
  43. mb_internal_encoding('utf-8');
  44. if (isset($login, $login['servers'])) {
  45. if (array_search($i, $login['servers']) === false) {
  46. die('You are not allowed to access this database.');
  47. }
  48. foreach ($config['servers'] as $key => $ignore) {
  49. if (array_search($key, $login['servers']) === false) {
  50. unset($config['servers'][$key]);
  51. }
  52. }
  53. }
  54. if (!isset($server['db'])) {
  55. if (isset($_GET['d']) && is_numeric($_GET['d'])) {
  56. $server['db'] = $_GET['d'];
  57. } else {
  58. $server['db'] = 0;
  59. }
  60. }
  61. if (!isset($server['filter'])) {
  62. $server['filter'] = '*';
  63. }
  64. // filter from GET param
  65. if (isset($_GET['filter']) && $_GET['filter'] != '') {
  66. $server['filter'] = $_GET['filter'];
  67. if (strpos($server['filter'], '*') === false) {
  68. $server['filter'] .= '*';
  69. }
  70. }
  71. if (!isset($server['seperator'])) {
  72. $server['seperator'] = $config['seperator'];
  73. }
  74. if (!isset($server['keys'])) {
  75. $server['keys'] = $config['keys'];
  76. }
  77. if (!isset($server['scansize'])) {
  78. $server['scansize'] = $config['scansize'];
  79. }
  80. if (!isset($server['serialization'])) {
  81. if (isset($config['serialization'])) {
  82. $server['serialization'] = $config['serialization'];
  83. }
  84. }
  85. // Setup a connection to Redis.
  86. if (isset($server['scheme']) && $server['scheme'] === 'unix' && $server['path']) {
  87. $redis = new Predis\Client(array('scheme' => 'unix', 'path' => $server['path']));
  88. } else {
  89. $redis = !$server['port'] ? new Predis\Client($server['host']) : new Predis\Client('tcp://' . $server['host'] . ':' . $server['port']);
  90. }
  91. try {
  92. $redis->connect();
  93. } catch (Predis\CommunicationException $exception) {
  94. $redis = false;
  95. }
  96. if (isset($server['auth'])) {
  97. if (!$redis->auth($server['auth'])) {
  98. die('ERROR: Authentication failed (' . $server['host'] . ':' . $server['port'] . ')');
  99. }
  100. }
  101. if ($server['db'] != 0) {
  102. if (!$redis->select($server['db'])) {
  103. die('ERROR: Selecting database failed (' . $server['host'] . ':' . $server['port'] . ',' . $server['db'] . ')');
  104. }
  105. }
  106. ?>