new.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:10k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: new.php,v $
  15. // | $Date: 2004/02/11 20:32:13 $
  16. // | $Revision: 1.30 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - User creation form and handler.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. include "./../global.php";
  23. tech_nav('users');
  24. // default do
  25. $_REQUEST['do'] = trim($_REQUEST['do']);
  26. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  27. $_REQUEST['do'] = "new";
  28. }
  29. if (!$user['p_create_users'] AND !$user['is_admin']) {
  30. nopermission("create new users.");
  31. }
  32. ############################################# CREATE USER ############################################# 
  33. if ($_REQUEST['do'] == "new2") {
  34. // password
  35. if (!$_REQUEST['password']) {
  36. $_REQUEST['password'] = make_pass(8);
  37. $_REQUEST['password1'] = $_REQUEST['password'];
  38. } elseif ($_REQUEST['password'] != $_REQUEST['password1']) {
  39. unset($_REQUEST['password'], $_REQUEST['password1']);
  40. $error .= "The passwords you have entered do not matchn";
  41. }
  42. // empty email
  43. if (!validate_email($_REQUEST['email'])) {
  44. $error .= "You have not entered a valid email addressn";
  45. }
  46. // empty username
  47. if (!$_REQUEST['username']) {
  48. $newusername = 1;
  49. $_REQUEST['username'] = make_username($_REQUEST['email']);
  50. } else {
  51. // username in use
  52. $db->query("SELECT id FROM user WHERE username = '" . mysql_escape_string($_REQUEST['username']) . "'");
  53. if ($db->num_rows() > 0) {
  54. $error .= "The username you entered is already in use. Please enter another onen";
  55. }
  56. }
  57. // email in use
  58. $db->query("SELECT username, id FROM user WHERE email = '" . mysql_escape_string($_REQUEST['email']) . "'");
  59. if ($db->num_rows() > 0) {
  60. $result = $db->row_array();
  61. $mailerror = "The email address you entered is already in use by $result[username] (userid $result[id])n";
  62. }
  63. $db->query("SELECT userid FROM user_email WHERE email = '" . mysql_escape_string($_REQUEST['email']) . "'");
  64. if ($db->num_rows() > 0) {
  65. $mailerror = "There is already a user with the email address $_REQUEST[user]n";
  66. }
  67. $db->query("SELECT id FROM user WHERE email = '" . mysql_escape_string($_REQUEST['email']) . "'");
  68. if ($db->num_rows() > 0) {
  69. $mailerror = "There is already a user with the email address $_REQUEST[user]n";
  70. }
  71. if ($mailerror) {
  72. $error .= $mailerror;
  73. }
  74. $password_cookie = md5($_REQUEST['password'] . uniqid(rand(),1));
  75. $password_cookie = substr($password_cookie, 0, 8);
  76. $password_url = md5($password . uniqid(rand(),1) . $session['sessionid']);
  77. $password_url = substr($password_url, 0, 8);
  78. $query = "INSERT INTO user SET 
  79. name = '" . mysql_escape_string($_REQUEST[name]) . "',
  80. email = '" . mysql_escape_string($_REQUEST[email]) . "',
  81. password = '" . mysql_escape_string($_REQUEST[password]) . "',
  82. password_cookie = '" . mysql_escape_string($password_cookie) . "',
  83. password_url = '" . mysql_escape_string($password_url) . "',
  84. username = '" . mysql_escape_string($_REQUEST[username]) . "', 
  85. timezone = '$settings[timezone]', 
  86. date_registered = '" . mktime() . "'
  87. ";
  88. // get the fields that we are expecting to be created
  89. $db->query("SELECT * FROM user_def WHERE tech_editable");
  90. $terms = array();
  91. while ($user_fields = $db->row_array()) {
  92. $data = field_def_val($user_fields, $_REQUEST[custom_fields][$user_fields[name]], $_REQUEST[custom_fields]["extra" . $user_fields[name]]);
  93. $terms[] = " $user_fields[name] = '" . mysql_escape_string($data) . "'";
  94. }
  95. if (is_array($terms)) {
  96. if (count($terms)) {
  97. $query .= " , " . join(', ', $terms);
  98. }
  99. }
  100. // run the query
  101. if ($error) {
  102. // unset autogenerate username
  103. if ($_REQUEST['password'] != $_REQUEST['password1']) {
  104. unset($_REQUEST['password'], $_REQUEST['password1']);
  105. }
  106. if ($newusername) {
  107. unset($_REQUEST['username']);
  108. }
  109. $_REQUEST['do'] = "new";
  110. alert($error);
  111. } else {
  112. $db->query($query);
  113. $userid = $db->last_id();
  114. $user_details = $db->query_return("SELECT * FROM user WHERE id = '$userid'");
  115. if ($_REQUEST['sendemail']) {
  116. $user_details = update_user_details($user_details);
  117. eval(makeemaileval('message', 'BODY_register_tech', $subject));
  118. dp_mail($user_details['email'], $subject, $message);
  119. }
  120. jump('new.php?do=new', 'User Created');
  121. }
  122. }
  123. ################################## MASS ADD USERS (2) ################################# 
  124. if ($_REQUEST['do'] == "massadd2") {
  125. $emails = split(',', $_REQUEST['emails']);
  126. if (is_array($emails)) {
  127. foreach ($emails AS $key => $var) {
  128. $email_check[$key] = "'" . mysql_escape_string(trim($var)) . "'";
  129. }
  130. $terms = join(',', $email_check);
  131. $db->query("SELECT email FROM user_email WHERE email IN ($terms)");
  132. while($res = $db->row_array()) {
  133. $used_emails = $res['email'];
  134. }
  135. $db->query("SELECT email FROM user WHERE email IN ($terms)");
  136. while($res = $db->row_array()) {
  137. $used_emails[] = $res['email'];
  138. }
  139. if (!is_array($used_emails)) {
  140. $used_emails = array();
  141. }
  142. foreach ($emails AS $key => $var) {
  143. $var = trim($var);
  144. if (validate_email($var)) {
  145. if (@in_array($var, $used_emails)) {
  146. $message .= "$var already in use, account not created.n";
  147. continue;
  148. $username = make_username($var);
  149. $password = make_pass(8);
  150. $password_cookie = md5($_REQUEST[password] . uniqid(rand(),1));
  151. $password_cookie = substr($password_cookie, 0, 8);
  152. $password_url = md5($password . uniqid(rand(),1) . $session[sessionid]);
  153. $password_url = substr($password_url, 0, 8);
  154. $db->query("
  155. INSERT INTO user SET
  156. password = '" . mysql_escape_string($password) . "',
  157. timezone = '" . mysql_escape_string($settings['timezone']) . "',
  158. username = '" . mysql_escape_string($username) . "',
  159. password_cookie = '" . mysql_escape_string($password_cookie) . "',
  160. password_url = '" . mysql_escape_string($password_url) . "',
  161. email = '" . mysql_escape_string($var) . "',
  162. date_registered = '" . mktime() . "'
  163. ");
  164. $user_details = array(
  165. 'email' => $var,
  166. 'password' => $password,
  167. 'username' => $username
  168. );
  169. $popup .= "User $var with username $username createdn";
  170. if ($_REQUEST['sendemail']) {
  171. $user_details = update_user_details($user_details);
  172. eval(makeemaileval('message', 'BODY_register_tech', $subject));
  173. dp_mail($user_details['email'], $subject, $message);
  174. }
  175. } else {
  176. if ($var != '') {
  177. $popup .= "Email $var invalid, user not createdn";
  178. }
  179. }
  180. }
  181. }
  182. alert($popup);
  183. $_REQUEST['do'] = "massadd";
  184. }
  185. ############################################# MASS ADD USERS ############################################# 
  186. if ($_REQUEST['do'] == "massadd") {
  187. $table[] = array(table_thelp('<b>Email Addresses</b><br />(comma separated)', 'Users', 'Mass Add'), form_textarea('emails', 100, 20));
  188. $table[] = array(table_thelp('<b>Send Welcome Email</b>', 'Users', 'Add/Edit: Send Welcome E-mail'), form_radio_yn('sendemail', NULL, $settings['register_welcome']));
  189. table_header('Mass add users', 'new.php', array('do' => 'massadd2'));
  190. table_content('', $table);
  191. table_footer('Create Users');
  192. unset($columns, $table);
  193. }
  194. ############################################# NEW / EDIT ############################################# 
  195. if ($_REQUEST['do'] == "new" OR $_REQUEST['do'] == "edit") {
  196. if ($do == "edit") {
  197. if ($user[p_edit_users] != "1") {
  198. nopermission('edit users');
  199. }
  200. }
  201. // get user data
  202. if ($id != "") {
  203. $db->query("SELECT * FROM user WHERE id = '$id'");
  204. $user2 = $db->row_array();
  205. }
  206. $table[] = array(table_thelp('<b>Email Address</b>', 'Users', 'Add/Edit: E-mail Address'), form_input('email', $_REQUEST['email']));
  207. $table[] = array(table_thelp('<b>Name</b>', 'Users', 'Add/Edit: Name'), form_input('name', $_REQUEST['name']));
  208. $table[] = array(table_thelp('<b>Username</b>', 'Users', 'Add/Edit: Username'), form_input('username', $_REQUEST['username']));
  209. $table[] = array(table_thelp('<b>Password</b>', 'Users', 'Add/Edit: Password'), form_password('password', $_REQUEST['password']));
  210. $table[] = array(table_thelp('<b>Repeat Password</b>', 'Users', 'Add/Edit: Password'), form_password('password1', $_REQUEST['password1']));
  211. $table[] = array(table_thelp('<b>Send Welcome Email</b>', 'Users', 'Add/Edit: Send Welcome E-mail'), form_radio_yn('sendemail', NULL, $settings['register_welcome']));
  212. // what data can we view?
  213. $db->query("SELECT * FROM user_def WHERE tech_editable ORDER BY displayorder");
  214. if ($db->num_rows() > 0) {
  215. $table[] = table_midheader('Other Fields');
  216. }
  217. while ($user_data =  $db->row_array()) {
  218. $user_data[display_name] = unserialize($user_data[display_name]);
  219. $user_data[display_name] = $user_data[display_name][$settings[default_language]];
  220. $bit = field_def($user_data, 'redo', $_REQUEST[custom_fields][$user_data[name]], $_REQUEST[custom_fields]["extra" . $user_data[name]]);
  221. $table[] = array("<b>$user_data[display_name]</b>", $bit);
  222. }
  223. $extra = form_hidden('id', $id);
  224. if ($_REQUEST['do'] == "new") {
  225. $hidden = array('do' => 'new2');
  226. } else {
  227. $hidden = array('do' => 'edit2');
  228. }
  229. table_header('Create User', 'new.php', $hidden, '', 'searchform');
  230. table_content($columns, $table);
  231. table_footer('Create');
  232. unset($columns, $table);
  233. } // end do
  234. tech_footer();
  235. ?>