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

<?php
/**
* @package uForum
* @file eprofile.php
* @version $Id$
* @copyright 2007-2010 (c) PioDer <[email protected]>
* @link http://www.pioder.pl/
* @license see LICENSE.txt
**/
define('IN_uF', true);
//include files
require('./config.php');
require('./includes/constants.php');
require('./includes/db.php');
require('./includes/errors.php');
//connect to database
DataBase::db_connect();
require('./includes/sessions.php');
require('./includes/classes/class_user.php');
require('./common.php');
require('./includes/misc_functions.php');
require('./includes/classes/class_posting.php');
require('./includes/classes/class_forum.php');
require('./includes/classes/class_topic.php');
require('./includes/classes/secure.php');
$default_skin = ViewSkinName();
$default_lang = DefaultLang();
require('./lngs/'.$default_lang.'/main.php');
$start = TimeGeneration();
SessDelInvalid();
SessRegister();
SessDeleteOld();
if ($_SESSION['uid']==0)
{
$stop = TimeGeneration();
message_forum($lng['youarenotlogd'],'login.php?mode=login');
}
foreach ($_POST as $name => $value)
{
if ($forum_config['use_censorlist'])
{
$_POST[$name] = Secure::UseCensorlist($value);
}
}
$msg='';
$errors = true;
$message = '';
if (isset($_POST['email']))
{
if ( ereg ("^.+@.+\..+$", $_POST['email']))
{
//if user changing password...
if ($_POST['password']!='')
{
if (md5($_POST['password'])==User::UserInformation($_SESSION['uid'],'pass'))
{
if ($_POST['newpassword']==$_POST['confirmpassword'])
{
User::UpdatePassword($_SESSION['uid'], md5(strip_tags($_POST['newpassword'])));
$errors = false;
}
else
{
$message=$lng['incorrect_password2'];
$msg = './skins/'.$default_skin.'/post_error_body.tpl';
}
}
else
{
$message=$lng['incorrect_password'];
$msg = './skins/'.$default_skin.'/post_error_body.tpl';
}
}
else
{
if ($_POST['default_skin']=='-1')
{
$message .= $lng['invalid_skin'].'<br />';
}
if ($_POST['default_lang']=='-1')
{
$message .= $lng['invalid_lang'].'<br />';
}
if ($_POST['limit_tpid']=='-1')
{
$message .= $lng['no_limit_tpid'].'<br />';
}
if ($_POST['limit_ftid'] =='-1')
{
$message .= $lng['no_limit_ftid'].'<br />';
}
if ($_POST['limit_users']=='-1')
{
$message .= $lng['no_limit_users'].'<br />';
}
if (strlen(trim($_POST['sig']))>$forum_config['sig_len'])
{
$message .= $lng['signature_too_long'].'<br />';
}
if ($message != '')
{
$msg = './skins/'.$default_skin.'/post_error_body.tpl';
}
else
{
$errors = false;
}
}
if (!$errors)
{
$_POST['ggnumber']=intval($_POST['ggnumber']);
$_POST['interests']=strip_tags($_POST['interests']);
$_POST['sig']=Secure::TagsReplace($_POST['sig']);
$allow_shoutbox = (isset($_POST['allow_shoutbox'])) ? '1' : 0;
if (isset($_FILES['avatar_file']['tmp_name']))
{
$extension = substr($_FILES['avatar_file']['name'],(strlen($_FILES['avatar_file']['name'])-3));
if (($extension == 'jpg') or ($extension == 'gif'))
{
if (file_exists(AV_CATALOG.'av-'.$_SESSION['uid'].'.jpg'))
{
unlink(AV_CATALOG.'av-'.$_SESSION['uid'].'.jpg');
}
if (file_exists(AV_CATALOG.'av-'.$_SESSION['uid'].'.gif'))
{
unlink(AV_CATALOG.'av-'.$_SESSION['uid'].'.gif');
}
move_uploaded_file($_FILES['avatar_file']['tmp_name'], AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension);
$imagesize = @getimagesize(AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension);
if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
{
$_POST['avatar'] = AV_CATALOG.'av-'.$_SESSION['uid'].'.'.$extension;
}
else
{
$_POST['avatar'] = 'images/av-to-big.jpg';
}
}
else
{
$_POST['avatar'] = htmlspecialchars($_POST['avatar']);
if (!preg_match('#^(http)|(ftp):\/\/#i', $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
{
$_POST['avatar'] = 'http://' . $_POST['avatar'];
}
if (!preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|gif))$)#is", $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
{
$_POST['avatar'] = '';
}
else
{
$imagesize = getimagesize($_POST['avatar']);
if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
{
$_POST['avatar'] = $_POST['avatar'];
}
else
{
$_POST['avatar'] = 'images/av-to-big.jpg';
}
}
}
}
else
{
$_POST['avatar'] = htmlspecialchars($_POST['avatar']);
if (!preg_match('#^(http)|(ftp):\/\/#i', $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
{
$_POST['avatar'] = 'http://' . $_POST['avatar'];
}
if (!preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|gif))$)#is", $_POST['avatar']) && $_POST['avatar'] != 'images/av-to-big.jpg')
{
$_POST['avatar'] = '';
}
else
{
$imagesize = getimagesize($_POST['avatar']);
if (($imagesize[0]<$forum_config['max_av_x']) && ($imagesize[1]<$forum_config['max_av_y']))
{
$_POST['avatar'] = $_POST['avatar'];
}
else
{
$_POST['avatar'] = 'images/av-to-big.jpg';
}
}
}
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);
message_forum($lng['profile_modernized'],'eprofile.php');
}
}
else
{
$message .= $lng['invalid_email'];
$msg = './skins/'.$default_skin.'/post_error_body.tpl';
}
}
//add skin variables
$skin = array(
//labels profile
'lnick'=>$lng['user_name'],
'lpass'=>$lng['lpassw'],
'lnewpass'=>$lng['new_password'],
'lcpass'=>$lng['confirm_password'],
'lemail'=>'E-mail',
'lgg'=>$lng['gg_number'],
'lallow_gg'=>$lng['allow_gg'],
'lallow_email'=>$lng['allow_email'],
'lallow_qr'=>$lng['allow_qr'],
'linterests'=>$lng['luinterests'],
'lsig'=>$lng['sig'],
'lavaddr'=>$lng['picture_adress'],
'lovpr'=>$lng['general_settings'],
'L.select_value'=>$lng['select_value'],
'L.limit_users'=>$lng['limit_users'],
'OPTIONS.limit_users'=>ListPages($userdata['limit_users']),
'L.posts_in_topic'=>$lng['limit_posts'],
'OPTIONS.limit_tpid'=>ListPages($userdata['limit_tpid']),
'L.topics_in_forum'=>$lng['limit_topics'],
'OPTIONS.limit_ftid'=>ListPages($userdata['limit_ftid']),
'lupr'=>$lng['profile_settings'],
'lspr'=>$lng['signature_settings'],
'ldefault_lang'=>$lng['default_lang'],
'default_lang'=>ListDir('lngs', $default_lang),
'l2default_lang'=>$lng['select_lang'],
'ldefault_skin'=>$lng['default_skin'],
'default_skin'=>ListDir('skins', $default_skin),
'l2default_skin'=>$lng['select_skin'],
'lapr'=>$lng['avatar_settings'],
'lsubmit'=>$lng['save'],
'lreset'=>$lng['reset'],
'nick'=>$userdata['nick'],
//options profile
'sig'=>$userdata['sig'],
'allow'=>$lng['allow'],
'allow_shoutbox'=>($userdata['view_shoutbox']==1) ? 'checked="checked"' : '',
'avatar'=>$userdata['avatar'],
'interests'=>$userdata['interests'],
'email'=>$userdata['email'],
'gg'=>$userdata['gg'],
//options values
'option_no_gg'=>($userdata['allow_gg']==0) ? 'checked="checked"' : '',
'option_no_email'=>($userdata['allow_email']==0) ? 'checked="checked"' : '',
'option_no_qr'=>($userdata['allow_qr']==0) ? 'checked="checked"' : '',
'option_yes_gg'=>($userdata['allow_gg']==1) ? 'checked="checked"' : '',
'option_yes_email'=>($userdata['allow_email']==1) ? 'checked="checked"' : '',
'option_yes_qr'=>($userdata['allow_qr']==1) ? 'checked="checked"' : '',
'no'=>$lng['no'],
'lallow_shoutbox'=>$lng['allow_shoutbox'],
'lavfile'=>$lng['avatar_file'],
'yes'=>$lng['yes']
);
$skin = array_push_assoc($skin,GenerateHeader($lng['leprofile'], '<a href="eprofile.php" class="navigator">'.$lng['leprofile']));
if ($msg=='')
{
$msg = './skins/'.$default_skin.'/blank.tpl';
}
//do it!
require('./skins/'.$default_skin.'/overall_header.tpl');
require('./skins/'.$default_skin.'/eprofile_body.tpl');
$stop = TimeGeneration();
$skin['queries'] = ShowQueries($start, $stop);
require('./skins/'.$default_skin.'/overall_footer.tpl');
?>