A lightweight forum engine written in PHP. Repository is now obsolete and read-only. http://www.pioder.pl/uforum.html
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

275 lines
8.4 KiB

  1. <?php
  2. /**
  3. * @package uForum
  4. * @file eprofile.php
  5. * @version $Id$
  6. * @copyright 2007-2010 (c) PioDer <pioder@wp.pl>
  7. * @link http://www.pioder.pl/
  8. * @license see LICENSE.txt
  9. **/
  10. define('IN_uF', true);
  11. //include files
  12. require('./config.php');
  13. require('./includes/constants.php');
  14. require('./includes/db.php');
  15. require('./includes/errors.php');
  16. //connect to database
  17. DataBase::db_connect();
  18. require('./includes/sessions.php');
  19. require('./includes/classes/class_user.php');
  20. require('./common.php');
  21. require('./includes/misc_functions.php');
  22. require('./includes/classes/class_posting.php');
  23. require('./includes/classes/class_forum.php');
  24. require('./includes/classes/class_topic.php');
  25. require('./includes/classes/secure.php');
  26. $default_skin = ViewSkinName();
  27. $default_lang = DefaultLang();
  28. require('./lngs/'.$default_lang.'/main.php');
  29. $start = TimeGeneration();
  30. SessDelInvalid();
  31. SessRegister();
  32. SessDeleteOld();
  33. if ($_SESSION['uid']==0)
  34. {
  35. $stop = TimeGeneration();
  36. message_forum($lng['youarenotlogd'],'login.php?mode=login');
  37. }
  38. foreach ($_POST as $name => $value)
  39. {
  40. if ($forum_config['use_censorlist'])
  41. {
  42. $_POST[$name] = Secure::UseCensorlist($value);
  43. }
  44. }
  45. $msg='';
  46. $errors = true;
  47. $message = '';
  48. if (isset($_POST['email']))
  49. {
  50. if ( ereg ("^.+@.+\..+$", $_POST['email']))
  51. {
  52. //if user changing password...
  53. if ($_POST['password']!='')
  54. {
  55. if (md5($_POST['password'])==User::UserInformation($_SESSION['uid'],'pass'))
  56. {
  57. if ($_POST['newpassword']==$_POST['confirmpassword'])
  58. {
  59. User::UpdatePassword($_SESSION['uid'], md5(strip_tags($_POST['newpassword'])));
  60. $errors = false;
  61. }
  62. else
  63. {
  64. $message=$lng['incorrect_password2'];
  65. $msg = './skins/'.$default_skin.'/post_error_body.tpl';
  66. }
  67. }
  68. else
  69. {
  70. $message=$lng['incorrect_password'];
  71. $msg = './skins/'.$default_skin.'/post_error_body.tpl';
  72. }
  73. }
  74. else
  75. {
  76. if ($_POST['default_skin']=='-1')
  77. {
  78. $message .= $lng['invalid_skin'].'<br />';
  79. }
  80. if ($_POST['default_lang']=='-1')
  81. {
  82. $message .= $lng['invalid_lang'].'<br />';
  83. }
  84. if ($_POST['limit_tpid']=='-1')
  85. {
  86. $message .= $lng['no_limit_tpid'].'<br />';
  87. }
  88. if ($_POST['limit_ftid'] =='-1')
  89. {
  90. $message .= $lng['no_limit_ftid'].'<br />';
  91. }
  92. if ($_POST['limit_users']=='-1')
  93. {
  94. $message .= $lng['no_limit_users'].'<br />';
  95. }
  96. if (strlen(trim($_POST['sig']))>$forum_config['sig_len'])
  97. {
  98. $message .= $lng['signature_too_long'].'<br />';
  99. }
  100. if ($message != '')
  101. {
  102. $msg = './skins/'.$default_skin.'/post_error_body.tpl';
  103. }
  104. else
  105. {
  106. $errors = false;
  107. }
  108. }
  109. if (!$errors)
  110. {
  111. $_POST['ggnumber']=intval($_POST['ggnumber']);
  112. $_POST['interests']=strip_tags($_POST['interests']);
  113. $_POST['sig']=Secure::TagsReplace($_POST['sig']);
  114. $allow_shoutbox = (isset($_POST['allow_shoutbox'])) ? '1' : 0;
  115. if (isset($_FILES['avatar_file']['tmp_name']))
  116. {
  117. $extension = substr($_FILES['avatar_file']['name'],(strlen($_FILES['avatar_file']['name'])-3));
  118. if (($extension == 'jpg') or ($extension == 'gif'))
  119. {
  120. if (file_exists(AV_CATALOG.'av-'.$_SESSION['uid'].'.jpg'))
  121. {
  122. unlink(AV_CATALOG.'av-'.$_SESSION['uid'].'.jpg');
  123. }
  124. if (file_exists(AV_CATALOG.'av-'.$_SESSION['uid'].'.gif'))
  125. {
  126. unlink(AV_CATALOG.'av-'.$_SESSION['uid'].'.gif');
  127. }
  128. move_uploaded_file($_FILES['avatar_file']['tmp_name'], AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension);
  129. $imagesize = @getimagesize(AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension);
  130. if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
  131. {
  132. $_POST['avatar'] = AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension;
  133. }
  134. else
  135. {
  136. $_POST['avatar'] = 'images/av-to-big.jpg';
  137. }
  138. }
  139. else
  140. {
  141. $_POST['avatar'] = htmlspecialchars($_POST['avatar']);
  142. if (!preg_match('#^(http)|(ftp):\/\/#i', $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
  143. {
  144. $_POST['avatar'] = 'http://' . $_POST['avatar'];
  145. }
  146. if (!preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|gif))$)#is", $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
  147. {
  148. $_POST['avatar'] = '';
  149. }
  150. else
  151. {
  152. $imagesize = getimagesize($_POST['avatar']);
  153. if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
  154. {
  155. $_POST['avatar'] = $_POST['avatar'];
  156. }
  157. else
  158. {
  159. $_POST['avatar'] = 'images/av-to-big.jpg';
  160. }
  161. }
  162. }
  163. }
  164. else
  165. {
  166. $_POST['avatar'] = htmlspecialchars($_POST['avatar']);
  167. if (!preg_match('#^(http)|(ftp):\/\/#i', $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
  168. {
  169. $_POST['avatar'] = 'http://' . $_POST['avatar'];
  170. }
  171. if (!preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|gif))$)#is", $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
  172. {
  173. $_POST['avatar'] = '';
  174. }
  175. else
  176. {
  177. $imagesize = getimagesize($_POST['avatar']);
  178. if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
  179. {
  180. $_POST['avatar'] = $_POST['avatar'];
  181. }
  182. else
  183. {
  184. $_POST['avatar'] = 'images/av-to-big.jpg';
  185. }
  186. }
  187. }
  188. User::UpdateProfile($_SESSION['uid'],$_POST['ggnumber'],strip_tags($_POST['email']),$_POST['interests'], $_POST['sig'],$_POST['avatar'],$_POST['allow_qr'],$_POST['allow_email'],$_POST['allow_gg'],$_POST['default_skin'],$_POST['default_lang'], $_POST['limit_tpid'],$_POST['limit_ftid'], $_POST['limit_users'], $allow_shoutbox);
  189. message_forum($lng['profile_modernized'],'eprofile.php');
  190. }
  191. }
  192. else
  193. {
  194. $message .= $lng['invalid_email'];
  195. $msg = './skins/'.$default_skin.'/post_error_body.tpl';
  196. }
  197. }
  198. //add skin variables
  199. $skin = array(
  200. //labels profile
  201. 'lnick'=>$lng['user_name'],
  202. 'lpass'=>$lng['lpassw'],
  203. 'lnewpass'=>$lng['new_password'],
  204. 'lcpass'=>$lng['confirm_password'],
  205. 'lemail'=>'E-mail',
  206. 'lgg'=>$lng['gg_number'],
  207. 'lallow_gg'=>$lng['allow_gg'],
  208. 'lallow_email'=>$lng['allow_email'],
  209. 'lallow_qr'=>$lng['allow_qr'],
  210. 'linterests'=>$lng['luinterests'],
  211. 'lsig'=>$lng['sig'],
  212. 'lavaddr'=>$lng['picture_adress'],
  213. 'lovpr'=>$lng['general_settings'],
  214. 'L.select_value'=>$lng['select_value'],
  215. 'L.limit_users'=>$lng['limit_users'],
  216. 'OPTIONS.limit_users'=>ListPages($userdata['limit_users']),
  217. 'L.posts_in_topic'=>$lng['limit_posts'],
  218. 'OPTIONS.limit_tpid'=>ListPages($userdata['limit_tpid']),
  219. 'L.topics_in_forum'=>$lng['limit_topics'],
  220. 'OPTIONS.limit_ftid'=>ListPages($userdata['limit_ftid']),
  221. 'lupr'=>$lng['profile_settings'],
  222. 'lspr'=>$lng['signature_settings'],
  223. 'ldefault_lang'=>$lng['default_lang'],
  224. 'default_lang'=>ListDir('lngs', $default_lang),
  225. 'l2default_lang'=>$lng['select_lang'],
  226. 'ldefault_skin'=>$lng['default_skin'],
  227. 'default_skin'=>ListDir('skins', $default_skin),
  228. 'l2default_skin'=>$lng['select_skin'],
  229. 'lapr'=>$lng['avatar_settings'],
  230. 'lsubmit'=>$lng['save'],
  231. 'lreset'=>$lng['reset'],
  232. 'nick'=>$userdata['nick'],
  233. //options profile
  234. 'sig'=>$userdata['sig'],
  235. 'allow'=>$lng['allow'],
  236. 'allow_shoutbox'=>($userdata['view_shoutbox']==1) ? 'checked="checked"' : '',
  237. 'avatar'=>$userdata['avatar'],
  238. 'interests'=>$userdata['interests'],
  239. 'email'=>$userdata['email'],
  240. 'gg'=>$userdata['gg'],
  241. //options values
  242. 'option_no_gg'=>($userdata['allow_gg']==0) ? 'checked="checked"' : '',
  243. 'option_no_email'=>($userdata['allow_email']==0) ? 'checked="checked"' : '',
  244. 'option_no_qr'=>($userdata['allow_qr']==0) ? 'checked="checked"' : '',
  245. 'option_yes_gg'=>($userdata['allow_gg']==1) ? 'checked="checked"' : '',
  246. 'option_yes_email'=>($userdata['allow_email']==1) ? 'checked="checked"' : '',
  247. 'option_yes_qr'=>($userdata['allow_qr']==1) ? 'checked="checked"' : '',
  248. 'no'=>$lng['no'],
  249. 'lallow_shoutbox'=>$lng['allow_shoutbox'],
  250. 'lavfile'=>$lng['avatar_file'],
  251. 'yes'=>$lng['yes']
  252. );
  253. $skin = array_push_assoc($skin,GenerateHeader($lng['leprofile'], '<a href="eprofile.php" class="navigator">'.$lng['leprofile']));
  254. if ($msg=='')
  255. {
  256. $msg = './skins/'.$default_skin.'/blank.tpl';
  257. }
  258. //do it!
  259. require('./skins/'.$default_skin.'/overall_header.tpl');
  260. require('./skins/'.$default_skin.'/eprofile_body.tpl');
  261. $stop = TimeGeneration();
  262. $skin['queries'] = ShowQueries($start, $stop);
  263. require('./skins/'.$default_skin.'/overall_footer.tpl');
  264. ?>