certs_manage.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. requirePHPLib('form');
  3. requirePHPLib('judger');
  4. if ($myUser == null) {
  5. become403Page();
  6. }
  7. $cur_tab = isset($_GET['tab']) ? $_GET['tab'] : 'my';
  8. $tabs_info = array(
  9. 'my' => array (
  10. 'name' => '我的勋章',
  11. 'url' => '/certs-manage/my'
  12. ),
  13. 'aboutme' => array (
  14. 'name' => '自定义页面',
  15. 'url' => '/certs-manage/aboutme'
  16. ),
  17. 'songs' => array (
  18. 'name' => '我要推歌',
  19. 'url' => '/certs-manage/songs'
  20. ),
  21. 'luogu' => array (
  22. 'name' => 'Luogu 账号管理',
  23. 'url' => '/certs-manage/luogu'
  24. )
  25. );
  26. if (!isset($tabs_info[$cur_tab])) {
  27. become404Page();
  28. }
  29. if ($_POST['certs'] != '') {
  30. crsf_defend();
  31. $certs = DB::escape($_POST['certs']);
  32. $username = $myUser['username'];
  33. if (!in_array($certs, explode(',', $myUser['certslist'])))
  34. becomeMsgPage('<div>你好像没有这个勋章</div>');
  35. DB::update("update user_info set certs = \"$certs\" where username = \"$username\"");
  36. becomeMsgPage("<div><h4>成功切换!</h4></div>");
  37. }
  38. $bg_form = new UOJForm('bg_form');
  39. $bg_form->addInput('bgurl', 'text', '背景地址 URL', '',
  40. function ($x) {
  41. return '';
  42. }, null);
  43. $bg_form->handle = function () {
  44. global $myUser;
  45. $url = DB::escape($_POST['bgurl']);
  46. DB::update("update user_info set bgurl = '$url' where username = '{$myUser['username']}'");
  47. };
  48. $bg_form->runAtServer();
  49. $aboutme_form = new UOJForm('aboutme_form');
  50. $aboutme_form->addInput('blogid', 'text', '博客 ID', '',
  51. function ($x) {
  52. if (!validateUInt($x)) return 'ID 不合法';
  53. if (!queryBlog($x)) return '博客不存在';
  54. return '';
  55. }, null);
  56. $aboutme_form->handle = function () {
  57. global $myUser;
  58. $id = $_POST['blogid'];
  59. DB::update("update user_info set aboutme_blogid = $id where username = '{$myUser['username']}'");
  60. };
  61. $aboutme_form->runAtServer();
  62. $luogu_form = new UOJForm('luogu_form');
  63. $luogu_form->addInput('luogu_uid', 'text', 'Luogu UID', '',
  64. function ($x) {
  65. if (!validateUInt($x))
  66. return '不是整数';
  67. return '';
  68. }, null);
  69. $luogu_form->addInput('luogu_clientid', 'text', '__client_id(在 Cookie 中)', '',
  70. function ($x) {
  71. return '';
  72. }, null);
  73. $luogu_form->handle = function () {
  74. global $myUser;
  75. $luid = DB::escape($_POST['luogu_uid']);
  76. $lcid = DB::escape($_POST['luogu_clientid']);
  77. $username = $myUser['username'];
  78. DB::update("update user_info set luogu_uid = '$luid', luogu_clientid = '$lcid' where username = '$username'");
  79. };
  80. $luogu_form->runAtServer();
  81. $song_form = new UOJForm('songs_form');
  82. $song_form->addInput('song_name', 'text', '歌名', '',
  83. function ($x) {
  84. if (strlen($x) > 200)
  85. return '歌名太长了';
  86. return '';
  87. }, null);
  88. $song_form->addInput('writer_name', 'text', '作者', '',
  89. function ($x) {
  90. if (strlen($x) > 200)
  91. return '作者名字太长了';
  92. return '';
  93. }, null);
  94. $song_form->addInput('album_name', 'text', '专辑', '',
  95. function ($x) {
  96. if (strlen($x) > 200)
  97. return '专辑名太长了';
  98. return '';
  99. }, null);
  100. $song_form->addInput('cover_url', 'text', '封面链接', '',
  101. function ($x) {
  102. if (strlen($x) > 256)
  103. return '封面链接过长';
  104. return '';
  105. }, null);
  106. $song_form->addInput('click_url', 'text', '歌曲链接', '',
  107. function ($x) {
  108. if (strlen($x) > 256)
  109. return '歌曲链接过长';
  110. return '';
  111. }, null);
  112. $song_form->handle = function () {
  113. global $myUser;
  114. $song_name = DB::escape(HTML::escape($_POST['song_name']));
  115. $writer_name = DB::escape(HTML::escape($_POST['writer_name']));
  116. $album_name = DB::escape(HTML::escape($_POST['album_name']));
  117. $cover_url = DB::escape(HTML::escape($_POST['cover_url']));
  118. $click_url = DB::escape(HTML::escape($_POST['click_url']));
  119. $username = $myUser['username'];
  120. DB::insert("insert into songs (name, writer, album, cover, click, user) values " .
  121. "('$song_name', '$writer_name', '$album_name', '$cover_url', '$click_url', '$username')");
  122. };
  123. $song_form->runAtServer();
  124. ?>
  125. <?php
  126. requireLib('hljs');
  127. requireLib('morris');
  128. ?>
  129. <?php echoUOJPageHeader('勋章管理') ?>
  130. <div class="row">
  131. <div class="col-sm-3">
  132. <?= HTML::tablist($tabs_info, $cur_tab, 'nav-pills flex-column') ?>
  133. </div>
  134. <div class="col-sm-9">
  135. <?php if ($cur_tab == 'my'): ?>
  136. <div>
  137. <h4>我的勋章</h4>
  138. <?php echoCertsList($myUser) ?>
  139. </div>
  140. <?php elseif ($cur_tab == 'aboutme'): ?>
  141. <div>
  142. <h4>设置自定义页面</h4>
  143. <?php $aboutme_form->printHTML(); ?>
  144. <h4>设置背景</h4>
  145. <?php $bg_form->printHTML(); ?>
  146. </div>
  147. <?php elseif ($cur_tab == 'songs'): ?>
  148. <div>
  149. <h4>我要推歌!</h4>
  150. <?php $song_form->printHTML(); ?>
  151. </div>
  152. <?php elseif ($cur_tab == 'luogu'): ?>
  153. <div>
  154. <h4>Luogu 账号管理</h4>
  155. <?php $luogu_form->printHTML(); ?>
  156. </div>
  157. <?php endif ?>
  158. </div>
  159. </div>
  160. <?php echoUOJPageFooter() ?>