Вход Регистрация
Файл: system/modules/settings.php
Строк: 189
<?php
/* 
    Appointment: Настройки
    File: settings.php 
 
*/
if(!defined('MOZG'))
    die(
'Hacking attempt!');

if(
$ajax == 'yes')
    
NoAjaxQuery();

if(
$logged){
    
$user_id $user_info['user_id'];
    
$act $_GET['act'];
    
$metatags['title'] = $lang['settings'];

    switch(
$act){
        
        
//################### Изменение пароля ###################//
        
case "newpass":
            
NoAjaxQuery();
            
            
$_POST['old_pass'] = ajax_utf8($_POST['old_pass']);
            
$_POST['new_pass'] = ajax_utf8($_POST['new_pass']);
            
$_POST['new_pass2'] = ajax_utf8($_POST['new_pass2']);
            
            
$old_pass md5(md5(GetVar($_POST['old_pass'])));
            
$new_pass md5(md5(GetVar($_POST['new_pass'])));
            
$new_pass2 md5(md5(GetVar($_POST['new_pass2'])));
            
            
//Выводим текущий пароль
            
$row $db->super_query("SELECT user_password FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            if(
$row['user_password'] == $old_pass){
                if(
$new_pass == $new_pass2)
                    
$db->query("UPDATE `".PREFIX."_users` SET user_password = '{$new_pass2}' WHERE user_id = '{$user_id}'");
                else
                    echo 
'2';
            } else
                echo 
'1';
            
            die();
        break;
        
        
//################### Изменение имени ###################//
        
case "newname":
            
NoAjaxQuery();
            
$user_name ajax_utf8(textFilter($_POST['name']));
            
$user_lastname ajax_utf8(textFilter(ucfirst($_POST['lastname'])));

            
//Проверка имени
            
if(isset($user_name)){
                if(
strlen($user_name) >= 2){
                    if(!
preg_match("/^[a-zA-Zа-яА-Я]+$/"$user_name))
                        
$errors 3;
                } else
                    
$errors 2;
            } else
                
$errors 1;
                
            
//Проверка фамилии
            
if(isset($user_lastname)){
                if(
strlen($user_lastname) >= 2){
                    if(!
preg_match("/^[a-zA-Zа-яА-Я]+$/"$user_lastname))
                        
$errors_lastname 3;
                } else
                    
$errors_lastname 2;
            } else
                
$errors_lastname 1;
            
            if(!
$errors){
                if(!
$errors_lastname){
                    
$user_name ucfirst($user_name);
                    
$user_lastname ucfirst($user_lastname);
                    
                    
$db->query("UPDATE `".PREFIX."_users` SET user_name = '{$user_name}', user_lastname = '{$user_lastname}', user_search_pref = '{$user_name} {$user_lastname}' WHERE user_id = '{$user_id}'");
                    
                    
mozg_clear_cache_file('user_'.$user_id.'/profile_'.$user_id);
                    
mozg_clear_cache();
                } else
                    echo 
$errors;
            } else
                echo 
$errors;
            
            die();
        break;
        
        
//################### Сохранение настроек приватности ###################//
        
case "saveprivacy":
            
NoAjaxQuery();
            
            
$val_msg intval($_POST['val_msg']);
            
$val_wall1 intval($_POST['val_wall1']);
            
$val_wall2 intval($_POST['val_wall2']);
            
$val_wall3 intval($_POST['val_wall3']);
            
$val_info intval($_POST['val_info']);
            
            if(
$val_msg <= OR $val_msg 3$val_msg 1;
            if(
$val_wall1 <= OR $val_wall1 3$val_wall1 1;
            if(
$val_wall2 <= OR $val_wall2 3$val_wall2 1;
            if(
$val_wall3 <= OR $val_wall3 3$val_wall3 1;
            if(
$val_info <= OR $val_info 3$val_info 1;
            
            
$user_privacy "val_msg|{$val_msg}||val_wall1|{$val_wall1}||val_wall2|{$val_wall2}||val_wall3|{$val_wall3}||val_info|{$val_info}||";
            
            
$db->query("UPDATE `".PREFIX."_users` SET user_privacy = '{$user_privacy}' WHERE user_id = '{$user_id}'");
            
            
mozg_clear_cache_file('user_'.$user_id.'/profile_'.$user_id);
            
            die();
        break;
        
        
//################### Приватность настройки ###################//
        
case "privacy":
            
$sql_ $db->super_query("SELECT user_privacy FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            
$row xfieldsdataload($sql_['user_privacy']);
            
$tpl->load_template('settings/privacy.tpl');
            
$tpl->set('{val_msg}'$row['val_msg']);
            
$tpl->set('{val_msg_text}'strtr($row['val_msg'], array('1' => 'Все пользователи''2' => 'Только друзья''3' => 'Никто')));
            
$tpl->set('{val_wall1}'$row['val_wall1']);
            
$tpl->set('{val_wall1_text}'strtr($row['val_wall1'], array('1' => 'Все пользователи''2' => 'Только друзья''3' => 'Только я')));
            
$tpl->set('{val_wall2}'$row['val_wall2']);
            
$tpl->set('{val_wall2_text}'strtr($row['val_wall2'], array('1' => 'Все пользователи''2' => 'Только друзья''3' => 'Только я')));
            
$tpl->set('{val_wall3}'$row['val_wall3']);
            
$tpl->set('{val_wall3_text}'strtr($row['val_wall3'], array('1' => 'Все пользователи''2' => 'Только друзья''3' => 'Только я')));
            
$tpl->set('{val_info}'$row['val_info']);
            
$tpl->set('{val_info_text}'strtr($row['val_info'], array('1' => 'Все пользователи''2' => 'Только друзья''3' => 'Только я')));
            
$tpl->compile('info');
        break;
        
        
//################### Добавление в черный список ###################//
        
case "addblacklist":
            
NoAjaxQuery();
            
$bad_user_id intval($_POST['bad_user_id']);
            
            
//Проверяем на существование юзера
            
$row $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$bad_user_id}'");

            
//Выводим свой блеклист для проверка
            
$myRow $db->super_query("SELECT user_blacklist FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            
$array_blacklist explode('|'$myRow['user_blacklist']);

            if(
$row['cnt'] AND !in_array($bad_user_id$array_blacklist) AND $user_id != $bad_user_id){
                
$db->query("UPDATE `".PREFIX."_users` SET user_blacklist_num = user_blacklist_num+1, user_blacklist = '{$myRow['user_blacklist']}|{$bad_user_id}|' WHERE user_id = '{$user_id}'");
                
                
//Если юзер есть в др.
                
if(CheckFriends($bad_user_id)){
                    
//Удаляем друга из таблицы друзей
                    
$db->query("DELETE FROM `".PREFIX."_friends` WHERE user_id = '{$user_id}' AND friend_id = '{$bad_user_id}' AND subscriptions = 0");
                    
                    
//Удаляем у друга из таблицы
                    
$db->query("DELETE FROM `".PREFIX."_friends` WHERE user_id = '{$bad_user_id}' AND friend_id = '{$user_id}' AND subscriptions = 0");
                    
                    
//Обновляем кол-друзей у юзера
                    
$db->query("UPDATE `".PREFIX."_users` SET user_friends_num = user_friends_num-1 WHERE user_id = '{$user_id}'");
                    
                    
//Обновляем у друга которого удаляем кол-во друзей
                    
$db->query("UPDATE `".PREFIX."_users` SET user_friends_num = user_friends_num-1 WHERE user_id = '{$bad_user_id}'");
                    
                    
//Чистим кеш владельцу стр и тому кого удаляем из др.
                    
mozg_clear_cache_file('user_'.$user_id.'/profile_'.$user_id);
                    
mozg_clear_cache_file('user_'.$bad_user_id.'/profile_'.$bad_user_id);
                    
                    
//Удаляем пользователя из кеш файл друзей
                    
$openMyList mozg_cache("user_{$user_id}/friends");
                    
mozg_create_cache("user_{$user_id}/friends"str_replace("u{$bad_user_id}|"""$openMyList));
                    
                    
$openTakeList mozg_cache("user_{$bad_user_id}/friends");
                    
mozg_create_cache("user_{$bad_user_id}/friends"str_replace("u{$user_id}|"""$openTakeList));
                }
                
                
$openMyList mozg_cache("user_{$user_id}/blacklist");
                
mozg_create_cache("user_{$user_id}/blacklist"$openMyList."|{$bad_user_id}|");
            }
            
            die();
        break;
        
        
//################### Удаление из черного списка ###################//
        
case "delblacklist":
            
NoAjaxQuery();
            
$bad_user_id intval($_POST['bad_user_id']);
            
            
//Проверяем на существование юзера
            
$row $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$bad_user_id}'");

            
//Выводим свой блеклист для проверка
            
$myRow $db->super_query("SELECT user_blacklist FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            
$array_blacklist explode('|'$myRow['user_blacklist']);

            if(
$row['cnt'] AND in_array($bad_user_id$array_blacklist) AND $user_id != $bad_user_id){
                
$myRow['user_blacklist'] = str_replace("|{$bad_user_id}|"""$myRow['user_blacklist']);
                
$db->query("UPDATE `".PREFIX."_users` SET user_blacklist_num = user_blacklist_num-1, user_blacklist = '{$myRow['user_blacklist']}' WHERE user_id = '{$user_id}'");
                
                
$openMyList mozg_cache("user_{$user_id}/blacklist");
                
mozg_create_cache("user_{$user_id}/blacklist"str_replace("|{$bad_user_id}|"""$openMyList));
            }
            
            die();
        break;
        
        
//################### Черный список ###################//
        
case "blacklist":
            
$row $db->super_query("SELECT user_blacklist, user_blacklist_num FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            
            
$tpl->load_template('settings/blacklist.tpl');
            
$tpl->set('{cnt}''<span id="badlistnum">'.$row['user_blacklist_num'].'</span> '.gram_record($row['user_blacklist_num'], 'fave'));
            if(
$row['user_blacklist_num']){
                
$tpl->set('[yes-users]''');
                
$tpl->set('[/yes-users]''');
            } else
                
$tpl->set_block("'\[yes-users\](.*?)\[/yes-users\]'si","");
            
$tpl->compile('info');
            
            if(
$row['user_blacklist_num'] AND $row['user_blacklist_num'] <= 100){
                
$tpl->load_template('settings/baduser.tpl');
                
$array_blacklist explode('|'$row['user_blacklist']);
                foreach(
$array_blacklist as $user){
                    if(
$user){
                        
$infoUser $db->super_query("SELECT user_photo, user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$user}'");
                        
                        if(
$infoUser['user_photo'])
                            
$tpl->set('{ava}''/uploads/users/'.$user.'/50_'.$infoUser['user_photo']);
                        else
                            
$tpl->set('{ava}''{theme}/images/no_ava_50.png');
                        
                        
$tpl->set('{name}'$infoUser['user_search_pref']);
                        
$tpl->set('{user-id}'$user);
                        
                        
$tpl->compile('content');
                    }
                }
            } else
                
msgbox(''$lang['settings_nobaduser'], 'info_2');
        break;
        
        
//################### Смена e-mail ###################//
        
case "change_mail":
        
            
//Отправляем письмо на обе почты
            
include_once ENGINE_DIR.'/classes/mail.php';
            
$mail = new dle_mail($config);
            
            
$email textFilter($_POST['email'], falsetrue);
            
            
//Проверка E-mail
            
if(preg_match('/^(("[w-s]+")|([w-]+(?:.[w-]+)*)|("[w-s]+")([w-]+(?:.[w-]+)*))(@((?:[w-]+.)*w[w-]{0,66}).([a-z]{2,6}(?:.[a-z]{2})?)$)|(@[?((25[0-5].|2[0-4][0-9].|1[0-9]{2}.|[0-9]{1,2}.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})]?$)/i'$email)) $ok_email true;
            else 
$ok_email false;
                
            
$row $db->super_query("SELECT user_email FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
            
            
$check_email $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users`  WHERE user_email = '{$email}'");
            
            if(
$row['user_email'] AND $ok_email AND !$check_email['cnt']){
                
                
//Удаляем все пред. заявки
                
$db->query("DELETE FROM `".PREFIX."_restore` WHERE email = '{$email}'");
                
                
$salt "abchefghjkmnpqrstuvwxyz0123456789";
                for(
$i 0$i 15$i++){
                    
$rand_lost .= $salt{rand(033)};
                }
                
$hash md5($server_time.$row['user_email'].rand(0100000).$rand_lost);
                        
                
$message = <<<HTML
Вы получили это письмо, так как зарегистрированы на сайте
{$config['home_url']} и хотите изменить основной почтовый адрес.
Вы желаете изменить почтовый адрес с текущего (
{$row['user_email']}) на {$email}
Для того чтобы Ваш основной e-mail на сайте 
{$config['home_url']} был
изменен, Вам необходимо пройти по ссылке:
{$config['home_url']}index.php?go=settings&code1={$hash}

Внимание: не забудьте, что после изменения почтового адреса при входе
на сайт Вам нужно будет указывать новый адрес электронной почты.

Если Вы не посылали запрос на изменение почтового адреса,
проигнорируйте это письмо.С уважением,
Администрация 
{$config['home_url']}
HTML;
                
$mail->send($row['user_email'], 'Изменение почтового адреса'$message);
                
                
//Вставляем в БД код 1
                
$db->query("INSERT INTO `".PREFIX."_restore` SET email = '{$email}', hash = '{$hash}', ip = '{$_IP}'");
                
                
$salt "abchefghjkmnpqrstuvwxyz0123456789";
                for(
$i 0$i 15$i++){
                    
$rand_lost .= $salt{rand(033)};
                }
                
$hash md5($server_time.$row['user_email'].rand(0300000).$rand_lost);
                        
                
$message = <<<HTML
Вы получили это письмо, так как зарегистрированы на сайте
{$config['home_url']} и хотите изменить основной почтовый адрес.
Вы желаете изменить почтовый адрес с текущего (
{$row['user_email']}) на {$email}
Для того чтобы Ваш основной e-mail на сайте 
{$config['home_url']} был
изменен, Вам необходимо пройти по ссылке:
{$config['home_url']}index.php?go=settings&code2={$hash}

Внимание: не забудьте, что после изменения почтового адреса при входе
на сайт Вам нужно будет указывать новый адрес электронной почты.

Если Вы не посылали запрос на изменение почтового адреса,
проигнорируйте это письмо.С уважением,
Администрация 
{$config['home_url']}
HTML;
                
$mail->send($email'Изменение почтового адреса'$message);
                
                
//Вставляем в БД код 2
                
$db->query("INSERT INTO `".PREFIX."_restore` SET email = '{$email}', hash = '{$hash}', ip = '{$_IP}'");
            
            } else
                echo 
'1';
            
            exit;
            
        break;
        
//################### Общие настройки ###################//
        
default:
            
$row $db->super_query("SELECT user_name, user_lastname, user_email FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");

            
//Загружаем вверх
            
$tpl->load_template('settings/general.tpl');
            
$tpl->set('{name}'$row['user_name']);
            
$tpl->set('{lastname}'$row['user_lastname']);
            
$tpl->set('{id}'$user_id);
            
//Завершении смены E-mail
            
$tpl->set('{code-1}''no_display');
            
$tpl->set('{code-2}''no_display');
            
$tpl->set('{code-3}''no_display');
            
            
$code1 strip_data($_GET['code1']);
            
$code2 strip_data($_GET['code2']);
            
            if(
strlen($code1) == 32){
                
                
$code2 '';
                
                
$check_code1 $db->super_query("SELECT email FROM `".PREFIX."_restore` WHERE hash = '{$code1}' AND ip = '{$_IP}'");

                if(
$check_code1['email']){
                    
                    
$check_code2 $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_restore` WHERE hash != '{$code1}' AND email = '{$check_code1['email']}' AND ip = '{$_IP}'");
                    
                    if(
$check_code2['cnt'])
                        
$tpl->set('{code-1}''');
                    else {
                        
$tpl->set('{code-1}''no_display');
                        
$tpl->set('{code-3}''');
                        
                        
//Меняем
                        
$db->query("UPDATE `".PREFIX."_users` SET user_email = '{$check_code1['email']}' WHERE user_id = '{$user_id}'");                            
                        
$row['user_email'] = $check_code1['email'];
                            
                    }
                    
                    
$db->query("DELETE FROM `".PREFIX."_restore` WHERE hash = '{$code1}' AND ip = '{$_IP}'");
                    
                }
            
            }
            
            if(
strlen($code2) == 32){
            
                
$check_code2 $db->super_query("SELECT email FROM `".PREFIX."_restore` WHERE hash = '{$code2}' AND ip = '{$_IP}'");

                if(
$check_code2['email']){
                
                    
$check_code1 $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_restore` WHERE hash != '{$code2}' AND email = '{$check_code2['email']}' AND ip = '{$_IP}'");
                    
                    if(
$check_code1['cnt'])
                        
$tpl->set('{code-2}''');
                    else {
                        
$tpl->set('{code-2}''no_display');
                        
$tpl->set('{code-3}''');
                        
                        
//Меняем
                        
$db->query("UPDATE `".PREFIX."_users` SET user_email = '{$check_code2['email']}'  WHERE user_id = '{$user_id}'");                        
                        
$row['user_email'] = $check_code2['email'];
                        
                    }
                    
                    
$db->query("DELETE FROM `".PREFIX."_restore` WHERE hash = '{$code2}' AND ip = '{$_IP}'");
                    
                }
            
            }
            
            
//Email
            
$substre substr($row['user_email'], 01);
            
$epx1 explode('@'$row['user_email']);
            
$tpl->set('{email}'$substre.'*******@'.$epx1[1]);
            
$tpl->compile('info');
    }
    
    
$tpl->clear();
    
$db->free();
} else {
    
$user_speedbar $lang['no_infooo'];
    
msgbox(''$lang['not_logged'], 'info');
}
?>
Онлайн: 2
Реклама