/**
  * <b>block_handler</b>
  * Blocks a user if required
  */
 function block_handler()
 {
     global $db, $config, $user, $lang;
     if ($user->data['user_id'] == ANONYMOUS) {
         return;
     }
     if (intval($config['ctracker_spammer_blockmode']) == 1 && $user->data['user_id'] != ANONYMOUS) {
         // Ban user
         $sql = "INSERT INTO " . BANLIST_TABLE . "(`ban_id` , `ban_userid` , `ban_ip` , `ban_email`) VALUES ('', '" . $user->data['user_id'] . "', '', NULL);";
         if (!$db->sql_query($sql)) {
             message_die(CRITICAL_ERROR, $lang['ctracker_error_updating_userdata'], '', __LINE__, __FILE__, $sql);
         }
         $db->clear_cache('ban_', USERS_CACHE_FOLDER);
     } elseif (intval($config['ctracker_spammer_blockmode']) == 2) {
         // Block user
         $sql = 'UPDATE ' . USERS_TABLE . ' SET user_active = 0 WHERE user_id = ' . $user->data['user_id'];
         if (!($result = $db->sql_query($sql))) {
             message_die(GENERAL_ERROR, $lang['ctracker_error_updating_userdata'], '', __LINE__, __FILE__, $sql);
         }
         // Mighty Gorgon: Remove all notifications...
         if (!function_exists('user_clear_notifications')) {
             include_once IP_ROOT_PATH . 'includes/functions_users_delete.' . PHP_EXT;
         }
         $clear_notification = user_clear_notifications($user->data['user_id']);
     }
     // Remove Profile data
     // Removed user_email = '*****@*****.**'
     $sql = "UPDATE " . USERS_TABLE . " SET user_allowavatar = 0, user_icq = '', user_website = '', user_from = '', user_sig = '', user_aim = '', user_yim = '', user_msnm = '', user_occ = '', user_interests = '' WHERE user_id = " . $user->data['user_id'];
     if (!($result = $db->sql_query($sql))) {
         message_die(GENERAL_ERROR, $lang['ctracker_error_updating_userdata'], '', __LINE__, __FILE__, $sql);
     }
     // Log it
     include_once IP_ROOT_PATH . 'includes/ctracker/classes/class_log_manager.' . PHP_EXT;
     $logfile = new log_manager();
     $logfile->prepare_log($user->data['username']);
     $logfile->write_general_logfile($config['ctracker_logsize_spammer'], 5);
     unset($logfile);
     // Log out user
     if ($user->data['session_logged_in']) {
         $user->session_kill();
     }
     // Output Info Message
     message_die(GENERAL_MESSAGE, $lang['ctracker_binf_sban']);
 }
Пример #2
0
				}
			}
		}
		else
		{
			if (($login_result['status'] === LOGIN_ERROR_USERNAME) || ($login_result['status'] === LOGIN_ERROR_PASSWORD) || ($login_result['status'] === LOGIN_ERROR_ACTIVE))
			{
				if ($login_result['error_msg'] === 'LOGIN_ERROR_PASSWORD')
				{
					// CrackerTracker v5.x
					if (!class_exists('log_manager'))
					{
						include(IP_ROOT_PATH . 'includes/ctracker/classes/class_log_manager.' . PHP_EXT);
					}
					$logfile = new log_manager();
					$logfile->prepare_log($login_result['user_row']['username']);
					$logfile->write_general_logfile($config['ctracker_logsize_logins'], 4);
					unset($logfile);
					// CrackerTracker v5.x
				}
				$error_message = ($login_result['error_msg'] === 'NO_PASSWORD_SUPPLIED') ? $lang[$login_result['error_msg']] : sprintf($lang[$login_result['error_msg']], '<a href="' . append_sid(CMS_PAGE_CONTACT_US) . '">', '</a>');
				message_die(GENERAL_MESSAGE, $error_message);
			}

			meta_refresh(3, (CMS_PAGE_LOGIN . '?redirect=' . htmlspecialchars($redirect_url)));

			$message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href="' . CMS_PAGE_LOGIN . '?redirect=' . htmlspecialchars($redirect_url) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid(CMS_PAGE_FORUM) . '">', '</a>');

			message_die(GENERAL_MESSAGE, $message);
		}
	}