Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

[Модуль] заморозка страницы ка вк


Рекомендуемые сообщения

1 заходим в system открыть mod.php
и падключить туда

//Если страница заморожена
        case "moroz":
                include ENGINE_DIR.'/modules/moroz.php';
        break;
        
2  вэтайже папке открыть файл init.php
ищем

if($user_info['user_ban_date'] >= $server_time OR $user_info['user_ban_date'] == '0' OR $blockip) include ENGINE_DIR . '/modules/profile_ban.php';

ниже вставить

if($user_info['moroz'] == '1') include ENGINE_DIR . '/modules/moroz.php';

3 заходим в system\modules открыть файл login.php
ищем

//Если есть данные сесии
if(isset($_SESSION['user_id']) > 0){
        $logged = true;
        $logged_user_id = intval($_SESSION['user_id']);
        $user_info = $db->super_query("SELECT user_id, user_email, user_group, user_friends_demands, user_pm_num, user_support, user_lastupdate, user_photo, user_msg_type, user_delet, user_ban_date, user_new_mark_photos, user_search_pref, user_status, user_last_visit, invties_pub_num FROM `".PREFIX."_users` WHERE user_id = '".$logged_user_id."'");

        
в этат запрос вставить

moroz,

ищем

//Если есть данные о COOKIE то проверяем
} elseif(isset($_COOKIE['user_id']) > 0 AND $_COOKIE['password'] AND $_COOKIE['hid']){
        $cookie_user_id = intval($_COOKIE['user_id']);
        $user_info = $db->super_query("SELECT user_id, user_email, user_group, user_password, user_hid, user_friends_demands, user_pm_num, user_support, user_lastupdate, user_photo, user_msg_type, user_delet, user_ban_date, user_new_mark_photos, user_search_pref, user_status, user_last_visit, invties_pub_num, moroz FROM `".PREFIX."_users` WHERE user_id = '".$cookie_user_id."'");
        
взапрос вставить

moroz,

ищем

//Приготавливаем данные
        $email = textFilter(strip_tags($_POST['email']));

        $password = md5(md5(GetVar($_POST['password'])));
        
ниже вставить

//Если у пользователя больше 10 неверных попыток ввести пароль за пол часа то морозим его страницу
                $check_err_count = $db->super_query("SELECT err_count, err_time FROM `".PREFIX."_users` WHERE user_email = '".$email."'");
                $err_count = $check_err_count['err_count'];
                $err_time = $check_err_count['err_time'];
                if ($err_count > 10){
                        $db->query("UPDATE `".PREFIX."_users` SET moroz = '1' WHERE user_email = '".$email."'");
                }        
               
ищем

if($config['temp'] != 'mobile')
                                        header('Location: /u'.$check_user['user_id']);
                                else
                                        header('Location: /');
                        } else{
                        
ниже вставить

// Обновляем время последней ошибки входа
                                                $db->query("UPDATE `".PREFIX."_users` SET err_time = '".$server_time."' WHERE user_email = '".$email."'");        
                                                // Если время с последней ошибки меньше 30 минут то...
                                                if($err_time > (time()-1800)){
                                            switch($err_count)
                                                {
                                                        case 0;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '1' WHERE user_email = '".$email."'");
                                                        break;
                                                        
                                                        case 1;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '2' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 2;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '3' WHERE user_email = '".$email."'");
                                                        break;               
                                                        case 3;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '4' WHERE user_email = '".$email."'");
                                                        break;                                                               
                                                        case 4;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '5' WHERE user_email = '".$email."'");
                                                        break;                        
                                                        case 5;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '6' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 6;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '7' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 7;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '8' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 8;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '9' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 9;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '10' WHERE user_email = '".$email."'");
                                                        break;        
                                                        case 10;
                                                                $db->query("UPDATE `".PREFIX."_users` SET err_count = '11' WHERE user_email = '".$email."'");
                                                        break;                                
                                                        default:
                                                        msgbox('', $lang['not_loggin2'].'<br /><br /><a href="/restore" onClick="Page.Go(this.href); return false">Забыли пароль?</a>', 'info_red');        
                                                }
                                                        }
                if($err_count <= 10){

4 заходим в базу даных во вкладку vii_users

саздаем там 3 строчки

moroz int 11

err_count int 11

err_time varchar 320

тамже в базу делаем sql запрос

CREATE TABLE IF NOT EXISTS `vii_moroz` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hash` varchar(32) NOT NULL,
  `ip` varchar(32) NOT NULL,
  `email` varchar(320) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

5 заходим в system\modules открыть там файл profile.php
ищем

//Проверяем на наличие кеша, если нету то выводи из БД и создаём его
        if(!$row){
                $row = $db->super_query("SELECT user_id, user_real, user_search_pref, user_country_city_name, user_birthday, user_xfields, user_xfields_all, user_city, user_country, user_photo, user_friends_num, user_notes_num, user_subscriptions_num, user_wall_num, user_albums_num, user_last_visit, user_videos_num, user_status, user_privacy, user_sp, user_sex, user_gifts, user_public_num, user_audio, user_delet, user_ban_date, xfields, user_logged_mobile , user_cover, user_cover_pos, user_rating FROM `".PREFIX."_users` WHERE user_id = '{$id}'");
        
вэтат запрос вставить

moroz,

6 заходим в lang\Russian открыть файл site.lang

и вставить туда

'not_loggin2'                                        => 'И опять пароль неправельный... На этот раз страница заморожена..',
'no_moroz'                                            => 'Зачем вам эта ссылка?',

автор Orlov22region 

[Модуль] заморозка страницы.rar

180943s53b3vmhws3irfoh.png

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...