delete.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. if (!isset($_POST['post'])) {
  3. die('Javascript needs to be enabled for you to delete keys.');
  4. }
  5. require_once 'includes/common.inc.php';
  6. if (isset($_GET['key'])) {
  7. // String
  8. if (!isset($_GET['type']) || ($_GET['type'] == 'string')) {
  9. // Delete the whole key.
  10. $redis->del($_GET['key']);
  11. }
  12. // Hash
  13. else if (($_GET['type'] == 'hash') && isset($_GET['hkey'])) {
  14. // Delete only the field in the hash.
  15. $redis->hDel($_GET['key'], $_GET['hkey']);
  16. }
  17. // List
  18. else if (($_GET['type'] == 'list') && isset($_GET['index'])) {
  19. // Lists don't have simple delete operations.
  20. // You can only remove something based on a value so we set the value at the index to some random value we hope doesn't occur elsewhere in the list.
  21. $value = str_rand(69);
  22. // This code assumes $value is not present in the list. To make sure of this we would need to check the whole list and place a Watch on it to make sure the list isn't modified in between.
  23. $redis->lSet($_GET['key'], $_GET['index'], $value);
  24. $redis->lRem($_GET['key'], 1, $value);
  25. }
  26. // Set
  27. else if (($_GET['type'] == 'set') && isset($_GET['value'])) {
  28. // Removing members from a set can only be done by supplying the member.
  29. $redis->sRem($_GET['key'], $_GET['value']);
  30. }
  31. // ZSet
  32. else if (($_GET['type'] == 'zset') && isset($_GET['value'])) {
  33. // Removing members from a zset can only be done by supplying the value.
  34. $redis->zRem($_GET['key'], $_GET['value']);
  35. }
  36. die('?view&s='.$server['id'].'&d='.$server['db'].'&key='.urlencode($_GET['key']));
  37. }
  38. if (isset($_GET['tree'])) {
  39. $keys = $redis->keys($_GET['tree'].'*');
  40. foreach ($keys as $key) {
  41. $redis->del($key);
  42. }
  43. die('?view&s='.$server['id'].'&d='.$server['db']);
  44. }
  45. ?>