Просмотр файла includes/usercp_editprofileinfo.php

Размер файла: 10.9Kb
  1. <?php
  2. /***************************************************************************
  3. * mides.ru
  4. * -------------------
  5. ***************************************************************************/
  6. if ( !defined('IN_PHPBB') )
  7. {
  8. die("Hacking attempt");
  9. exit;
  10. }
  11.  
  12. $unhtml_specialchars_match = array('#&gt;#', '#&lt;#', '#&quot;#', '#&amp;#');
  13. $unhtml_specialchars_replace = array('>', '<', '"', '&');
  14.  
  15. $error = FALSE;
  16. $error_msg = '';
  17.  
  18. if (
  19. isset($HTTP_POST_VARS['submit']))
  20. {
  21. include($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
  22. include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
  23. include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
  24.  
  25. $strip_var_list = array('icq' => 'icq', 'number' => 'number', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'user_purse' => 'user_purse');
  26.  
  27. while( list($var, $param) = @each($strip_var_list) )
  28. {
  29. if ( !empty($HTTP_POST_VARS[$param]) )
  30. {
  31. $$var = trim(htmlspecialchars($HTTP_POST_VARS[$param]));
  32. }
  33. }
  34.  
  35. $gender = ( isset($HTTP_POST_VARS['gender']) ) ? intval ($HTTP_POST_VARS['gender']) : 0;
  36.  
  37. if (isset($HTTP_POST_VARS['birthday']) )
  38. {
  39. $birthday = intval ($HTTP_POST_VARS['birthday']);
  40. if ($birthday!=999999)
  41. {
  42. $b_day = realdate('j',$birthday);
  43. $b_md = realdate('n',$birthday);
  44. $b_year = realdate('Y',$birthday);
  45. }
  46. } else
  47. {
  48. $b_day = ( isset($HTTP_POST_VARS['b_day']) ) ? intval ($HTTP_POST_VARS['b_day']) : 0;
  49. $b_md = ( isset($HTTP_POST_VARS['b_md']) ) ? intval ($HTTP_POST_VARS['b_md']) : 0;
  50. $b_year = ( isset($HTTP_POST_VARS['b_year']) ) ? intval ($HTTP_POST_VARS['b_year']) : 0;
  51. if ($b_day && $b_md && $b_year)
  52. {
  53. $birthday = mkrealdate($b_day,$b_md,$b_year);
  54. } else
  55. {
  56. $birthday = 999999;
  57. }
  58. }
  59.  
  60. validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests);
  61. }
  62.  
  63. if ( isset($HTTP_POST_VARS['submit']) )
  64. {
  65. $user_id = intval($HTTP_POST_VARS['user_id']);
  66. if ( $user_id != $userdata['user_id'] )
  67. {
  68. $error = TRUE;
  69. $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
  70. }
  71.  
  72. if ( $website != '' )
  73. {
  74. rawurlencode($website);
  75. }
  76.  
  77. if ($b_day || $b_md || $b_year)
  78. {
  79. $user_age=(date('md')>=$b_md.(($b_day <= 9) ? '0':'').$b_day) ? date('Y') - $b_year : date('Y') - $b_year - 1 ;
  80. if (!checkdate($b_md,$b_day,$b_year))
  81. {
  82. $error = TRUE;
  83. if( isset($error_msg) )$error_msg .= "<br />";
  84. $error_msg .= $lang['Wrong_birthday_format'];
  85. } else
  86. if ($user_age>$board_config['max_user_age'])
  87. {
  88. $error = TRUE;
  89. if( isset($error_msg) )$error_msg .= "<br />";
  90. $error_msg .= sprintf($lang['Birthday_to_high'],$board_config['max_user_age']);
  91. } else
  92. if ($user_age<$board_config['min_user_age'])
  93. {
  94. $error = TRUE;
  95. if( isset($error_msg) )$error_msg .= "<br />";
  96. $error_msg .= sprintf($lang['Birthday_to_low'],$board_config['min_user_age']);
  97. } else
  98. {
  99. $birthday = ($error) ? $birthday : mkrealdate($b_day,$b_md,$b_year);
  100. $next_birthday_greeting = (date('md')<$b_md.(($b_day <= 9) ? '0':'').$b_day) ? date('Y'):date('Y')+1 ;
  101. }
  102. } else
  103. {
  104. if ($board_config['birthday_required'])
  105. {
  106. $error = TRUE;
  107. if( isset($error_msg) )$error_msg .= "<br />";
  108. $error_msg .= sprintf($lang['Birthday_require']);
  109. }
  110. $birthday = 999999;
  111. }
  112.  
  113. if ( !$error )
  114. {
  115. $user_active = 1;
  116. $user_actkey = '';
  117.  
  118. $sql = "UPDATE " . USERS_TABLE . "
  119. SET user_icq = '" . str_replace("\'", "''", $icq) . "', user_purse = '" . str_replace("\'", "''", $user_purse) . "', user_number = '" . str_replace("\'", "''", $number) . "',user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_birthday = '$birthday', user_next_birthday_greeting = '$next_birthday_greeting', user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_gender = '$gender'
  120. WHERE user_id = $user_id";
  121. if ( !($result = $db->sql_query($sql)) )
  122. {
  123. message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
  124. }
  125.  
  126. $message = 'Ваш профиль успешно изменен!';
  127.  
  128. $template->assign_vars(array(
  129. "META" => '<meta http-equiv="refresh" content="3;url=' . append_sid("menu.$phpEx") . '">')
  130. );
  131.  
  132. message_die(GENERAL_MESSAGE, $message);
  133. }
  134. }
  135.  
  136.  
  137. if ( $error )
  138. {
  139. $icq = stripslashes($icq);
  140. $user_purse = stripslashes($user_purse);
  141. $aim = str_replace('+', ' ', stripslashes($aim));
  142. $msn = stripslashes($msn);
  143. $yim = stripslashes($yim);
  144.  
  145. $website = stripslashes($website);
  146. $location = stripslashes($location);
  147. $occupation = stripslashes($occupation);
  148. $interests = stripslashes($interests);
  149. }
  150. else
  151. {
  152. $user_id = $userdata['user_id'];
  153. $user_purse = $userdata['user_purse'];
  154. $icq = $userdata['user_icq'];
  155. $aim = str_replace('+', ' ', $userdata['user_aim']);
  156. $msn = $userdata['user_msnm'];
  157. $yim = $userdata['user_yim'];
  158.  
  159. $website = $userdata['user_website'];
  160. $location = $userdata['user_from'];
  161. $occupation = $userdata['user_occ'];
  162. $interests = $userdata['user_interests'];
  163. $number = $userdata['user_number'];
  164. $gender=$userdata['user_gender'];
  165. $birthday = $userdata['user_birthday'];
  166. }
  167.  
  168. include($phpbb_root_path . 'includes/page_header.'.$phpEx);
  169.  
  170. if ( $user_id != $userdata['user_id'] )
  171. {
  172. $error = TRUE;
  173. $error_msg = $lang['Wrong_Profile'];
  174. }
  175.  
  176. include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);
  177.  
  178. if ( !isset($coppa) )
  179. {
  180. $coppa = FALSE;
  181. }
  182.  
  183. $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
  184.  
  185. $s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" />';
  186. $s_hidden_fields .= '<input type="hidden" name="current_email" value="' . $userdata['user_email'] . '" />';
  187.  
  188. switch ($gender)
  189. {
  190. case 1: $gender_male_checked="checked=\"checked\"";break;
  191. case 2: $gender_female_checked="checked=\"checked\"";break;
  192. default:$gender_no_specify_checked="checked=\"checked\"";
  193. }
  194.  
  195. if ( $birthday!=999999 )
  196. {
  197. $b_day = realdate('j', $birthday);
  198. $b_md = realdate('n', $birthday);
  199. $b_year = realdate('Y', $birthday);
  200. $birthday = realdate($lang['Submit_date_format'], $birthday);
  201. } else
  202. {
  203. $b_day = '';
  204. $b_md = '';
  205. $b_year = '';
  206. $birthday = '';
  207. }
  208.  
  209. if ( $error )
  210. {
  211. $template->set_filenames(array(
  212. 'reg_header' => 'error_body.tpl')
  213. );
  214. $template->assign_vars(array(
  215. 'ERROR_MESSAGE' => $error_msg)
  216. );
  217. $template->assign_var_from_handle('ERROR_BOX', 'reg_header');
  218. }
  219.  
  220. $template->set_filenames(array(
  221. 'body' => 'profile_add_info.tpl')
  222. );
  223.  
  224. $s_b_day = $lang['Day'] . '<select name="b_day" size="1" class="gensmall">
  225. <option value="0">-</option>
  226. <option value="1">1</option>
  227. <option value="2">2</option>
  228. <option value="3">3</option>
  229. <option value="4">4</option>
  230. <option value="5">5</option>
  231. <option value="6">6</option>
  232. <option value="7">7</option>
  233. <option value="8">8</option>
  234. <option value="9">9</option>
  235. <option value="10">10</option>
  236. <option value="11">11</option>
  237. <option value="12">12</option>
  238. <option value="13">13</option>
  239. <option value="14">14</option>
  240. <option value="15">15</option>
  241. <option value="16">16</option>
  242. <option value="17">17</option>
  243. <option value="18">18</option>
  244. <option value="19">19</option>
  245. <option value="20">20</option>
  246. <option value="21">21</option>
  247. <option value="22">22</option>
  248. <option value="23">23</option>
  249. <option value="24">24</option>
  250. <option value="25">25</option>
  251. <option value="26">26</option>
  252. <option value="27">27</option>
  253. <option value="28">28</option>
  254. <option value="29">29</option>
  255. <option value="30">30</option>
  256. <option value="31">31</option>
  257. </select><br/>';
  258. $s_b_md = $lang['Month'] . '<select name="b_md" size="1" class="gensmall">
  259. <option value="0">-</option>
  260. <option value="1">'.$lang['datetime']['January'].'</option>
  261. <option value="2">'.$lang['datetime']['February'].'</option>
  262. <option value="3">'.$lang['datetime']['March'].'&nbsp;</option>
  263. <option value="4">'.$lang['datetime']['April'].'</option>
  264. <option value="5">'.$lang['datetime']['May'].'</option>
  265. <option value="6">'.$lang['datetime']['June'].'</option>
  266. <option value="7">'.$lang['datetime']['July'].'</option>
  267. <option value="8">'.$lang['datetime']['August'].'</option>
  268. <option value="9">'.$lang['datetime']['September'].'</option>
  269. <option value="10">'.$lang['datetime']['October'].'</option>
  270. <option value="11">'.$lang['datetime']['November'].'</option>
  271. <option value="12">'.$lang['datetime']['December'].'</option>
  272. </select><br/>';
  273. $s_b_day= str_replace("value=\"".$b_day."\">", "value=\"".$b_day."\" SELECTED>" ,$s_b_day);
  274. $s_b_md = str_replace("value=\"".$b_md."\">", "value=\"".$b_md."\" SELECTED>" ,$s_b_md);
  275. $s_b_year = $lang['Year'] . '<input type="text" class="post" style="width: 50px" name="b_year" size="4" maxlength="4" value="' . $b_year . '" />';
  276. $i = 0;
  277. $s_birthday = '';
  278. for ($i=0; $i<=strlen($lang['Submit_date_format']); $i++)
  279. {
  280. switch ($lang['Submit_date_format'][$i])
  281. {
  282. case d: $s_birthday .= $s_b_day;break;
  283. case m: $s_birthday .= $s_b_md;break;
  284. case Y: $s_birthday .= $s_b_year;break;
  285. }
  286. }
  287.  
  288. $template->assign_vars(array(
  289. 'YIM' => $yim,
  290. 'ICQ' => $icq,
  291. 'MSN' => $msn,
  292. 'AIM' => $aim,
  293. 'PURSE' => $user_purse,
  294. 'OCCUPATION' => $occupation,
  295. 'INTERESTS' => $interests,
  296. 'NUMBER' => $number,
  297. 'S_BIRTHDAY' => $s_birthday,
  298. 'BIRTHDAY_REQUIRED' => ($board_config['birthday_required']) ? '*' : '',
  299. 'LOCATION' => $location,
  300. 'WEBSITE' => $website,
  301. 'SIGNATURE' => str_replace('<br />', "\n", $signature),
  302.  
  303. 'LOCK_GENDER' =>($mode!='register') ? 'DISABLED':'',
  304. 'GENDER' => $gender,
  305. 'GENDER_NO_SPECIFY_CHECKED' => $gender_no_specify_checked,
  306. 'GENDER_MALE_CHECKED' => $gender_male_checked,
  307. 'GENDER_FEMALE_CHECKED' => $gender_female_checked,
  308.  
  309. 'L_SUBMIT' => $lang['Submit'],
  310. 'L_ICQ_NUMBER' => $lang['ICQ'],
  311. 'L_MESSENGER' => $lang['MSNM'],
  312. 'L_YAHOO' => $lang['YIM'],
  313. 'L_WEBSITE' => $lang['Website'],
  314. 'L_AIM' => $lang['AIM'],
  315. 'L_LOCATION' => $lang['Location'],
  316. 'L_OCCUPATION' => $lang['Occupation'],
  317. 'L_YES' => $lang['Yes'],
  318. 'L_NO' => $lang['No'],
  319. 'L_INTERESTS' => $lang['Interests'],
  320. 'L_NUMBER' => $lang['Number'],
  321.  
  322. 'L_GENDER' =>$lang['Gender'],
  323. 'L_GENDER_MALE' =>$lang['Male'],
  324. 'L_GENDER_FEMALE' =>$lang['Female'],
  325. 'L_GENDER_NOT_SPECIFY' =>$lang['No_gender_specify'],
  326.  
  327. 'L_BIRTHDAY' => $lang['Birthday'],
  328.  
  329. 'S_HIDDEN_FIELDS' => $s_hidden_fields,
  330. 'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))
  331. );
  332.  
  333. if ( $board_config['pay_money'] )
  334. {
  335. $template->assign_block_vars('pay_money', array() );
  336. }
  337.  
  338. $template->pparse('body');
  339.  
  340. include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
  341.  
  342. ?>