common.inc.php 3.6 KB

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