inc_levelup.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. function get_memberlevel_array($exceptid = '')
  3. {
  4. global $db;
  5. global $db_mymps;
  6. $query = $db->query('SELECT levelname,id FROM `' . $db_mymps . 'member_level` WHERE id > \'' . $exceptid . '\'');
  7. while ($row = $db->fetchRow($query)) {
  8. $res[$row['id']]['levelid'] = $row['id'];
  9. $res[$row['id']]['levelname'] = $row['levelname'];
  10. $res[$row['id']]['levelmoney'] = $row['levelmoney'];
  11. }
  12. if ($exceptid != '') {
  13. unset($res[$exceptid]);
  14. }
  15. return $res;
  16. }
  17. function GetUplevelTime($formname = 'upleveltime', $levelid = '')
  18. {
  19. global $db;
  20. global $db_mymps;
  21. global $charset;
  22. $timearray = array('halfyear' => '半年', 'forever' => '永久', 'month' => '一个月', 'year' => '一年');
  23. $data = '';
  24. @include MYMPS_DATA . '/caches/member_' . $levelid . '.php';
  25. if ($data == '') {
  26. $row = $db->getRow('SELECT * FROM `' . $db_mymps . 'member_level` WHERE id = \'' . $levelid . '\'');
  27. }
  28. else {
  29. $row = $data;
  30. }
  31. unset($data);
  32. $moneysettings = $charset == 'utf-8' ? utf8_unserialize($row['moneysettings']) : unserialize($row['moneysettings']);
  33. $newtimearray = array();
  34. foreach ($moneysettings['ifopen'] as $key => $val) {
  35. $newtimearray[$key] = $timearray[$key];
  36. }
  37. unset($timearray);
  38. $upleveltime_form = '<select name=\'' . $formname . '\' id=\'' . $formname . '\'>';
  39. foreach ($newtimearray as $k => $v) {
  40. $upleveltime_form .= '<option value=\'' . $k . '\'>' . $v . '</option>
  41. ';
  42. }
  43. $upleveltime_form .= '</select>
  44. ';
  45. return $upleveltime_form;
  46. }
  47. if (!defined('IN_MYMPS')) {
  48. exit('Forbidden');
  49. }
  50. $ac = isset($ac) ? trim($ac) : 'step1';
  51. require_once MEMBERDIR . '/include/common.func.php';
  52. if (submit_check('levelup_submit')) {
  53. $forwardlevel = intval($forwardlevel);
  54. if (empty($forwardlevel)) {
  55. write_msg('', '?m=levelup&error=14');
  56. }
  57. if ($forwardlevel == $levelid) {
  58. write_msg('', '?m=levelup&error=16');
  59. }
  60. $data = '';
  61. $data = read_static_cache('member_' . $levelid);
  62. $levelname = $data['levelname'];
  63. $forward = read_static_cache('member_' . $forwardlevel);
  64. if ($forward === false) {
  65. $forward = $db->getRow('SELECT * FROM `' . $db_mymps . 'member_level` WHERE id = \'' . $forwardlevel . '\'');
  66. }
  67. $forwardlevelname = $forward['levelname'];
  68. if (empty($forwardlevelname)) {
  69. write_msg('', '?m=levelup&error=15');
  70. }
  71. $moneysettings = $charset == 'utf-8' ? utf8_unserialize($forward['moneysettings']) : unserialize($forward['moneysettings']);
  72. $forwardlevelmoney = $moneysettings['money'];
  73. if ($ac == 'step2') {
  74. $location = location();
  75. include mymps_tpl('levelup_2');
  76. exit();
  77. }
  78. else if ($ac == 'step3') {
  79. $leveluptime = mhtmlspecialchars($_POST['leveluptime']);
  80. $money_cost = $forwardlevelmoney[$leveluptime];
  81. $timearray = array('halfyear' => '183', 'year' => '365', 'month' => '30', 'forever' => '0');
  82. $levelup_time = $timearray[$leveluptime] != 0 ? $timearray[$leveluptime] * 3600 * 24 + $timestamp : 0;
  83. if ($money_own < $money_cost) {
  84. write_msg('', '?m=levelup&ac=step2&error=2');
  85. }
  86. $db->query('UPDATE `' . $db_mymps . 'member` SET levelid = \'' . $forwardlevel . '\',levelup_time = \'' . $levelup_time . '\',money_own = money_own - \'' . $money_cost . '\' ' . $where);
  87. $day = $timearray[$leveluptime] == 0 ? '永久' : '<font color=blue>' . $timearray[$leveluptime] . '</font>天';
  88. write_money_use('升级会员级别为 <font color=red>' . $forwardlevelname . '</font>,期限为' . $day, '<font color=red>扣除金币 ' . $money_cost . ' </font>', $do_type);
  89. unset($day);
  90. write_msg('', '?m=levelup&success=8');
  91. }
  92. }
  93. else {
  94. $levelup_notice = $db->getOne('SELECT value FROM `' . $db_mymps . 'config` WHERE description = \'levelup_notice\'');
  95. $data = '';
  96. @include MYMPS_DATA . '/caches/member_' . $levelid . '.php';
  97. $levelname = $data['levelname'] ? $data['levelname'] : $db->getOne('SELECT levelname FROM `' . $db_mymps . 'member_level` WHERE id = \'' . $levelid . '\'');
  98. unset($data);
  99. $memberlevel_array = get_memberlevel_array($levelid);
  100. $location = location();
  101. include mymps_tpl('levelup');
  102. }
  103. ?>