www.gusucode.com > Carbon Forum PHP轻论坛系统 v3.6.5源码程序 > Carbon-Forum-3.6.5/settings.php

    <?php
include(__DIR__ . '/common.php');
require(__DIR__ . '/language/' . ForumLanguage . '/settings.php');
Auth(1);
$UploadAvatarMessage   = '';
$UpdateUserInfoMessage = '';
$ChangePasswordMessage = '';
$DoNotNeedOriginalPassword = (stripos($CurUserInfo['Password'], 'zzz')===0);

$CurUserOauthData = $DB->query('SELECT * FROM ' . $Prefix . 'app_users 
	WHERE UserID=?', array($CurUserID));

$TemporaryOauthData = json_decode($Config['CacheOauth'], true);
$TemporaryOauthData = $TemporaryOauthData?$TemporaryOauthData:array();
$OauthData = array();
foreach ($TemporaryOauthData as $Value) {
	$OauthData[$Value['ID']] = $Value;
}
unset($TemporaryOauthData);
// $DoNotNeedOriginalPassword === True表示该用户为oAuth登陆用户,修改密码不需要原密码

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	$Action = Request('POST', 'Action', false);
	switch ($Action) {
		case 'UploadAvatar':
			if ($_FILES['Avatar']['size'] && $_FILES['Avatar']['size'] < 1048576) {
				require(__DIR__ . "/includes/ImageResize.class.php");
				$UploadAvatar  = new ImageResize('PostField', 'Avatar');
				$LUploadResult = $UploadAvatar->Resize(256, 'upload/avatar/large/' . $CurUserID . '.png', 80);
				$MUploadResult = $UploadAvatar->Resize(48, 'upload/avatar/middle/' . $CurUserID . '.png', 90);
				$SUploadResult = $UploadAvatar->Resize(24, 'upload/avatar/small/' . $CurUserID . '.png', 90);
				if ($LUploadResult && $MUploadResult && $SUploadResult) {
					$UploadAvatarMessage = $Lang['Avatar_Upload_Success'];
				} else {
					$UploadAvatarMessage = $Lang['Avatar_Upload_Failure'];
				}
				
			} else {
				$UploadAvatarMessage = $Lang['Avatar_Is_Oversize'];
			}
			break;
		
		case 'UpdateUserInfo':
			$CurUserInfo['UserSex']      = intval(Request('POST', 'UserSex', 0));
			$CurUserInfo['UserMail']     = IsEmail(Request('POST', 'UserMail', $CurUserInfo['UserMail'])) ? Request('POST', 'UserMail', $CurUserInfo['UserMail']) : $CurUserInfo['UserMail'];
			$CurUserInfo['UserHomepage'] = CharCV(Request('POST', 'UserHomepage', $CurUserInfo['UserHomepage']));
			$CurUserInfo['UserIntro']    = CharCV(Request('POST', 'UserIntro', $CurUserInfo['UserIntro']));
			$UpdateUserInfoResult        = UpdateUserInfo(array(
				'UserSex' => $CurUserInfo['UserSex'],
				'UserMail' => $CurUserInfo['UserMail'],
				'UserHomepage' => $CurUserInfo['UserHomepage'],
				'UserIntro' => $CurUserInfo['UserIntro']
			));
			if ($UpdateUserInfoResult) {
				$UpdateUserInfoMessage = $Lang['Profile_Modified_Successfully'];
			} else {
				$UpdateUserInfoMessage = $Lang['Profile_Do_Not_Modify'];
			}
			
			break;
		
		case 'ChangePassword':
			$OriginalPassword = Request('Post', 'OriginalPassword');
			$NewPassword      = Request('Post', 'NewPassword');
			$NewPassword2     = Request('Post', 'NewPassword2');
			if (($OriginalPassword || $DoNotNeedOriginalPassword) && $NewPassword && $NewPassword2) {
				if ($NewPassword == $NewPassword2) {
					if (md5(md5($OriginalPassword) . $CurUserInfo['Salt']) === $CurUserInfo['Password'] || $DoNotNeedOriginalPassword) {
						if ($OriginalPassword != $NewPassword || $DoNotNeedOriginalPassword) {
							//$NewSalt = mt_rand(100000,999999);
							//修改Salt会导致密码问题出错
							$NewSalt         = $CurUserInfo['Salt'];
							$NewPasswordHash = md5(md5($NewPassword) . $NewSalt);
							if (UpdateUserInfo(array(
								//'Salt' => $NewSalt,
								'Password' => $NewPasswordHash
							))) {
								$TemporaryUserExpirationTime = 30 * 86400 + $TimeStamp;//默认保持30天登陆状态
								SetCookies(array(
									'UserExpirationTime' => $TemporaryUserExpirationTime,
									'UserCode' => md5($NewPasswordHash . $NewSalt . $TemporaryUserExpirationTime . $SALT)
								), 30);
								$CurUserInfo['Salt']     = $NewSalt;
								$CurUserInfo['Password'] = $NewPasswordHash;
								$ChangePasswordMessage   = $Lang['Change_Password_Success'];
							} else {
								$ChangePasswordMessage = $Lang['Change_Password_Failure'];
							}
						} else {
							$ChangePasswordMessage = $Lang['Password_Do_Not_Modify'];
						}
					} else {
						$ChangePasswordMessage = $Lang['Current_Password_Is_Uncorrect'];
					}
				} else {
					$ChangePasswordMessage = $Lang['Passwords_Inconsistent'];
				}
			} else {
				$ChangePasswordMessage = $Lang['Forms_Can_Not_Be_Empty'];
			}
			break;
		
		default:
			# code...
			break;
	}
}
$DB->CloseConnection();
// 页面变量
$PageTitle   = $Lang['Settings'];
$ContentFile = $TemplatePath . 'settings.php';
include($TemplatePath . 'layout.php');