Просмотр файла admin/users/edit.php

Размер файла: 8.95Kb
  1. <?php
  2. include '../../engine/includes/start.php';
  3. if (!$admin)
  4. Core::stop('/?');
  5.  
  6. $set['title'] = 'Редактирование пользователей';
  7. include incDir . 'head.php';
  8.  
  9. if ($act == 'new' && isset($_SESSION['edit_user_id']))
  10. {
  11. unset($_SESSION['edit_user_id']);
  12. }
  13.  
  14. if (isset($_POST['user']) || $id)
  15. {
  16. $_SESSION['edit_user_id'] =
  17. $sql->query('SELECT `id` FROM `user` WHERE `'.(Core::form('order') == 'id' || $id ? 'id' : 'nick').'` = "'.($id ? $id : Core::form('user')).'" LIMIT 1')->result();
  18. if ($_SESSION['edit_user_id'] == 0 || $_SESSION['edit_user_id'] == $user_id)
  19. {
  20. unset($_SESSION['edit_user_id']);
  21. Core::msg_show('Поиск не дал результатов', 'error');
  22. //Include incDir . 'foot.php';
  23. }
  24. }
  25.  
  26. if (!isset($_SESSION['edit_user_id']))
  27. {
  28. ?>
  29. <div class="menu_razd">Редактирование пользователя</div>
  30. <form method="post">
  31. Искать пользователя по:<br />
  32. <select name="order">
  33. <option value="id">Id</option>
  34. <option value="nick">Ник</option>
  35. </select><br />
  36. Данные для поиска:<br />
  37. <input type="text" name="user" value=""/><br />
  38. <input type="submit" value="Искать"/>
  39. </form>
  40. <?php
  41. }
  42. else
  43. {
  44. $editor = Core::get_user($_SESSION['edit_user_id']);
  45. echo '<div class="post">Редактирование пользователя '.$editor['nick'].', <a href="?act=new">изменить</a></div>';
  46. if (isset($_POST['save']))
  47. {
  48. if (isset($_POST['nick']) && $_POST['nick'] != $editor['nick'])
  49. {
  50. if ($sql->query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."'")->result() == 1)
  51. $err = 'Ник '.$_POST['nick'].' уже занят';
  52. else
  53. {
  54. $nick = Core::form('nick');
  55. $nick_len = mb_strlen($nick);
  56.  
  57. if(!preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $nick))
  58. $err[] = 'В нике присутствуют запрещенные символы';
  59. if ($nick_len < 3)
  60. $err[] = 'Короткий ник';
  61. elseif ($nick_len > 32)
  62. $err[] = 'Длина ника превышает 32 символа';
  63. if (!isset($err))
  64. {
  65. $sql->query("UPDATE `user` SET `nick` = '$nick' WHERE `'".Core::form('order')."` = '".Core::form('user')."' LIMIT 1");
  66. }
  67. }
  68. }
  69.  
  70. if (isset($_POST['ank_name']) && preg_match('#^([A-zА-я \-]*)$#ui', $_POST['ank_name']))
  71. {
  72. $editor['ank_name'] = Core::form('ank_name');
  73. $sql->query("UPDATE `user` SET `ank_name` = '$editor[ank_name]' WHERE `id` = '$editor[id]' LIMIT 1");
  74. }
  75. else $err='Вы ошиблись в поле имя';
  76.  
  77. if (isset($_POST['ank_d_r']) && (is_numeric($_POST['ank_d_r']) && $_POST['ank_d_r']>0 && $_POST['ank_d_r']<=31 || $_POST['ank_d_r']==NULL))
  78. {
  79. $editor['ank_d_r']=$_POST['ank_d_r'];
  80. if ($editor['ank_d_r']==null)
  81. $editor['ank_d_r']='null';
  82. $sql->query("UPDATE `user` SET `ank_d_r` = $editor[ank_d_r] WHERE `id` = '$editor[id]' LIMIT 1");
  83. if ($editor['ank_d_r']=='null')
  84. $editor['ank_d_r']=NULL;
  85. }
  86. else $err='Неверный формат дня рождения';
  87.  
  88. if (isset($_POST['ank_m_r']) && (is_numeric($_POST['ank_m_r']) && $_POST['ank_m_r']>0 && $_POST['ank_m_r']<=12 || $_POST['ank_m_r']==NULL))
  89. {
  90. $editor['ank_m_r']=$_POST['ank_m_r'];
  91. if ($editor['ank_m_r']==null)$editor['ank_m_r']='null';
  92. $sql->query("UPDATE `user` SET `ank_m_r` = $editor[ank_m_r] WHERE `id` = '$editor[id]' LIMIT 1");
  93. if ($editor['ank_m_r']=='null')$editor['ank_m_r']=NULL;
  94. }
  95. else $err='Неверный формат месяца рождения';
  96.  
  97. if (isset($_POST['ank_g_r']) && (is_numeric($_POST['ank_g_r']) && $_POST['ank_g_r']>0 && $_POST['ank_g_r']<=date('Y') || $_POST['ank_g_r']==NULL))
  98. {
  99. $editor['ank_g_r']=$_POST['ank_g_r'];
  100. if ($editor['ank_g_r']==null)$editor['ank_g_r']='null';
  101. $sql->query("UPDATE `user` SET `ank_g_r` = $editor[ank_g_r] WHERE `id` = '$editor[id]' LIMIT 1");
  102. if ($editor['ank_g_r']=='null')$editor['ank_g_r']=NULL;
  103. }
  104. else $err='Неверный формат года рождения';
  105.  
  106. if (isset($_POST['ank_city']) && preg_match('#^([A-zА-я \-]*)$#ui', $_POST['ank_city']))
  107. {
  108. $editor['ank_city'] = Core::form('ank_city');
  109. $sql->query("UPDATE `user` SET `ank_city` = '$editor[ank_city]' WHERE `id` = '$editor[id]' LIMIT 1");
  110. }
  111. else $err='Вы ошиблись в поле город';
  112.  
  113. if (isset($_POST['ank_icq']) && (is_numeric($_POST['ank_icq']) && strlen($_POST['ank_icq'])>=5 && strlen($_POST['ank_icq'])<=9 || $_POST['ank_icq']==NULL))
  114. {
  115. $editor['ank_icq']=$_POST['ank_icq'];
  116. if ($editor['ank_icq']==null)$editor['ank_icq']='null';
  117. $sql->query("UPDATE `user` SET `ank_icq` = $editor[ank_icq] WHERE `id` = '$editor[id]' LIMIT 1");
  118. if ($editor['ank_icq']=='null')$editor['ank_icq']=NULL;
  119. }
  120. else $err='Неверный формат ICQ';
  121.  
  122. if (isset($_POST['ank_n_tel']) && (is_numeric($_POST['ank_n_tel']) && strlen($_POST['ank_n_tel'])>=5 && strlen($_POST['ank_n_tel'])<=11 || $_POST['ank_n_tel']==NULL))
  123. {
  124. $editor['ank_n_tel']=$_POST['ank_n_tel'];
  125. $sql->query("UPDATE `user` SET `ank_n_tel` = '$editor[ank_n_tel]' WHERE `id` = '$editor[id]' LIMIT 1");
  126. }
  127. else $err='Неверный формат номера телефона';
  128.  
  129. if (isset($_POST['ank_mail']) && ($_POST['ank_mail']==null || preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$_POST['ank_mail'])))
  130. {
  131. $user['ank_mail']=$_POST['ank_mail'];
  132. $sql->query("UPDATE `user` SET `ank_mail` = '$user[ank_mail]' WHERE `id` = '$user[id]' LIMIT 1");
  133. }
  134. else $err='Неверный E-mail';
  135.  
  136. if (isset($_POST['ank_o_sebe']) && preg_match('#^([A-zА-я \-]*)$#ui', $_POST['ank_o_sebe']))
  137. {
  138. $editor['ank_o_sebe'] = Core::form('ank_o_sebe');
  139. $sql->query("UPDATE `user` SET `ank_o_sebe` = '$editor[ank_o_sebe]' WHERE `id` = '$editor[id]' LIMIT 1");
  140. }
  141. else $err='Вы ошиблись в поле о себе';
  142.  
  143. if (isset($_POST['new_pass']) && mb_strlen($_POST['new_pass'])>5)
  144. {
  145. $sql->query("UPDATE `user` SET `pass` = '".md5($editor['id'] . $_POST['new_pass'])."' WHERE `id` = '$editor[id]' LIMIT 1");
  146. }
  147.  
  148. if (isset($_POST['group_access']) && $_POST['group_access'] < 5 &&
  149. $editor['group_access']!=intval($_POST['group_access']))
  150. {
  151. $editor['group_access']= $editor['group_access'] > 9 ? $editor['group_access'] : intval($_POST['group_access']);
  152. $sql->query("UPDATE `user` SET `group_access` = '$editor[group_access]' WHERE `id` = '$editor[id]' LIMIT 1");
  153. }
  154.  
  155. if (isset($_POST['balls']) && is_numeric($_POST['balls']))
  156. {
  157. $editor['balls']=intval($_POST['balls']);
  158. $sql->query("UPDATE `user` SET `balls` = '$editor[balls]' WHERE `id` = '$editor[id]' LIMIT 1");
  159. }
  160.  
  161. if (!isset($err))
  162. {
  163. Core::msg_show('Изменения успешно приняты', 'msg');
  164. Core::get('cache.class');
  165. $editor = Core::get_user($editor['id'], true);
  166. Cache::multi_delete('user[id='.$editor['id']);
  167. }
  168. else
  169. Core::msg_show($err, 'error');
  170. }
  171. ?>
  172.  
  173. <form method='post' action='?id=<?=$editor['id']?>'>
  174. Ник:<br />
  175. <input type='text' name='nick' value='<?=$editor['nick']?>' maxlength='32'/><br />
  176. Имя в реале:<br />
  177. <input type='text' name='ank_name' value='<?=$editor['ank_name']?>' maxlength='32' /><br />
  178. Дата рождения:<br />
  179. <input type='text' name='ank_d_r' value='<?=$editor['ank_d_r']?>' size='2' maxlength='2' />
  180. <input type='text' name='ank_m_r' value='<?=$editor['ank_m_r']?>' size='2' maxlength='2' />
  181. <input type='text' name='ank_g_r' value='<?=$editor['ank_g_r']?>' size='4' maxlength='4' /><br />
  182. Город:<br />
  183. <input type='text' name='ank_city' value='<?=$editor['ank_city']?>' maxlength='32' /><br />
  184. ICQ:<br />
  185. <input type='text' name='ank_icq' value='<?=$editor['ank_icq']?>' maxlength='9' /><br />
  186. E-mail:<br />
  187. <input type='text' name='ank_mail' value='<?=$editor['ank_mail']?>' maxlength='32' /><br />
  188. Номер телефона:<br />
  189. <input type='text' name='ank_n_tel' value='<?=$editor['ank_n_tel']?>' maxlength='11' /><br />
  190. О себе:<br />
  191. <input type='text' name='ank_o_sebe' value='<?=$editor['ank_o_sebe']?>' maxlength='512' /><br />
  192. Баллы:<br />
  193. <input type='text' name='balls' value='<?=$editor['balls']?>' /><br />
  194. Группа:<br />
  195. <select name='group_access'>
  196. <option value='1' <?=($editor['group_access'] == 1 ? ' selected="selected"':null)?>>Пользователь</option>
  197. <option value='2' <?=($editor['group_access'] == 2 ? ' selected="selected"':null)?>>Модератор</option>
  198. <option value='3' <?=($editor['group_access'] == 3 ? ' selected="selected"':null)?>>Админ</option>
  199. </select><br />
  200. Новый пароль:<br />
  201. <input type='text' name='new_pass' value='' /><br />
  202. <input type='submit' name='save' value='Сохранить' />
  203. </form>
  204. <?php
  205. }
  206.  
  207. if ($creator)
  208. {
  209. ?>
  210. <a href='/admin/?act=users'><div class="link">Пользователи</div></a>
  211. <a href='/admin/'><div class="link">Админка</div></a>
  212. <?php
  213. }
  214. include incDir . 'foot.php';