Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику UnrealGame ::: Спасибо сказали: 21
Дата поста: В теме: За сообщение: Спасибо сказали:
28.4.2015, 12:41 Amxbans v6.13 Ban type IP+STEAMID
Добрый день

Так как AMXBans был изначально создан для Steam серверов, то поддержка бана по Steam+IP как таковая не предусмотрена.

Но все таки есть решение для nonSteam серверов, модифицированный AmxBans - [attachment=32975:AMXbans_...on_Steam.zip]

Вся идея в том что плагин amxbans_main.amxx был модифицирован, и теперь введен параметр AuthID. Который позволяет банить по связке Steam+IP, или эмулятор стима + IP, или же только по IP.

Также в конфиге amxbans.cfg добавился новый параметр, для выбора типа бана:
Код
amxbans_type_ban "2"
// типы бана игрока:
// 0 - легальный Steam (ленальный Steam -> authID ban, других -> IP ban)
// 1 - гибридный метод (ленальный Steam -> authID ban, emu client -> authID ban, других -> IP ban )
// 2 - двойной (ленальный Steam -> authID ban, emu client -> authID ban и IP ban, других -> IP ban )


К сожалению разработчик не выложил исходный код плагина, но он протестирован и работает без замечаний и ошибок.
NNAARRIIKK
10.3.2015, 15:24 Счетчик посещаемости на сайте
Цитата(Ermak @ 10.3.2015, 15:09) *
UnrealGame, Все равно не добавляет, вообще не работает

Я не могу Вам подсказать решение по Вашему сообщению. Я повторюсь, рекомендую Вам овладеть методами отладки кода, для самостоятельного поиска ошибок. Мне кажется это поможет Вам экономить собственное время и ускорить процесс написания кода.
Ermak
10.3.2015, 14:46 Счетчик посещаемости на сайте
Цитата(Ermak @ 9.3.2015, 17:42) *
UnrealGame, Я не понимаю, вы показали один и тот же код, только первый раз со скобками а второй без скобок

Скобки влияют та логику работы условий.

В моем примере ошибка, первую скобку надо поставить левее:
Код
$result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE (`user_name`="'.$user_name.'" OR `ip_user`="'.$ip_user.'") AND `tek_data`>'.$time.'');
Ermak
9.3.2015, 13:05 Счетчик посещаемости на сайте
Ваш запрос выглядит очень подозрительно:
Код
   $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`>'.$time.')');

В нем идет выборка всех ID, если:
- в базе существует такой $user_name
- или $ip_user за последний день

Мне кажется, был бы более логичный запрос:
Код
   $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `(user_name`="'.$user_name.'" OR `ip_user`="'.$ip_user.'") AND `tek_data`>'.$time.'');

В нем идет выборка всех ID, если есть $user_name или $ip_user за последний день.

Хотя я только предполагаю, возможно я просто не понял заложенный смысл.
Ermak
6.3.2015, 9:48 Unreal Game
Запрещено было писать в этой теме, пока не наберу 20 сообщений на форуме, поэтому ответ вышел запоздалым.
Спасибо всем, кто проявил интерес к хостингу и написал свой отзыв.

Цитата(ThePhoenix @ 2.3.2015, 13:47) *
тесты будут?Дц какое?Локации какие?

Тест доступен сразу же после регистрации.

Цитата
Локация у нас в Киеве, Украина.
Мы не используем услуги компаний которые официально предоставляют услуги ДЦ. Но все оборудование находиться в условиях равных платному дата центру.

Подтверждаю сказанное.

Serhio, Я думаю, Вы как представитель хостинга прекрасно понимаете, что для корпоративных клиентов услуга Интернет предоставляется по индивидуальному соглашению. У нас с компанией CORBINA TELECOM соглашение, выходящее далеко за рамки услуги «домашний Интернет», дающее возможность получать услугу корпоративного уровня. Если Вам понадобится какая либо консультация по этому вопросу с удовольствие помогу, в формате ЛС, чтобы сообщения данной ветки соответствовали теме.
ThePhoenix
6.3.2015, 9:01 Проблема с флэш 2268 PRAM usb...
Сгорела микросхема передачи данных, можно покупать новую. Сори за плохую новость sad.gif

На будущее не оставляй в компе на долго, часто умирают в таких условиях.
unhead
5.3.2015, 22:41 Вывести статистику
Предложенный запрос не подходит так как в нем берется номер недели в году, а не номер недели в месяце, подсчёты будут неточными (если конечно это вообще принципиально)
Код
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, month(`stat_date`) AS `stat_date_month`, week(`stat_date`) AS `stat_date_week`, YEAR(`stat_date`) AS `stat_date_year`
        FROM `action_user`
        GROUP BY `friend_name`, MONTH(`stat_date`), WEEK('stat_date'), YEAR('stat_date')";
    $q=mysql_query($query);

Мне кажется более корректно будет считать вот такой запрос:
Код
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, month(`stat_date`) AS `stat_date_month`, CEIL(day(stat_date)/7) AS `stat_date_week`, YEAR(`stat_date`) AS `stat_date_year`
        FROM `action_user`
        GROUP BY `friend_name`, MONTH(stat_date), CEIL(day(stat_date)/7), YEAR(stat_date)";
    $q=mysql_query($query);


Еще один нюанс, недель в месяце выйдет 5, а не 4.

Я не смогу написать сразу код без ошибок, опечаток и оплошностей. Для меня разработка это смешанный процесс написания кода и параллельной отладки.

Если говорить о логической последовательности действий для того чтобы решить поставленную задачу. Нужно пройтись по всем полученным записям и сформировать 3 временных массива:
- массив уникальных дат,
- массив уникальных пользователей,
- массив в котором будет хранится количество посещений для определенного пользователя в определенную дату.

Можно все эти массивы получить используя запросы к базе.

Использую первый массив, можно сформировать шапку таблицы. Далее пройдясь вложенным циклом foreach по первым двум массивам, вывести значение с третьего.
Ermak
5.3.2015, 21:42 Счетчик посещаемости на сайте
Тип TIME (ссылка на документацию) это только время (к примеру '10:11:12'), определить день записи становиться невозможно. Стоит поменять поле tek_data к примеру на тип DATETIME (еще есть вариант TIMESTAMP).

Запрос к базе можно преобразовать на вот такой:
Код
// Узнаем, были ли посетитель за сегодня
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`> NOW() - INTERVAL 1 day )');

Если работа каких либо запросов к базе в скриптах смущает, пробуйте подключится к базе использую какой-то mysql-клиент, тогда будет наглядно видно проблему.
Ermak
5.3.2015, 15:58 Вывести статистику
В в столбце tek_data_week содержится номер недели в году (от 0 до 53 - всего в году 52 недели). Если хочешь показать месяц, используй столбец tek_data_month.

С точки зрения документации по запросам (MySQL) хороший ресурс: MySQL function week
Ermak
5.3.2015, 13:40 Вывести статистику
Год учесть можно вот так:
Код
// SQL query
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, month(`tek_data`) as `tek_data_month`, week(`tek_data`) AS `tek_data_week`
        FROM `action_user`
        GROUP BY `friend_name`, CEIL(UNIX_TIMESTAMP(login_date)/604800)";


Берем дату в формате TIMESTAMP и делим на 604800 (60*60*24*7 - количество секунд в неделе). Функцией CEIL оставляем только целое от деление.

В моем примере я переименовал колонки, может из-за этого проблемы с выводом.
Ermak
5.3.2015, 11:37 Вывести статистику
Полная аналогия с группировкой по месяцу:
Код
// SQL query
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, month(`tek_data`) as `tek_data_month`, week(`tek_data`) AS `tek_data_week`
        FROM `action_user`
        GROUP BY `friend_name`, week(`tek_data`)";

Правда тут еще не учтён год. Но в примере с месяцами была эта же проблема.
Ermak
5.3.2015, 10:49 Подскажите что за порт 20480?
Мне понравилось решение отбрасывать неправильно маленькие пакеты на уровне iptables. Вот что я нашел:
Код
iptables -A INPUT -p udp -m length --length 0:32 -j DROP

Пока меня смущает значение 32, для меня было бы более понятно значение 28, надо проверять.
adva
4.3.2015, 20:28 Счетчик посещаемости на сайте
Нужно понять, какая именно строчка кода приводит к ошибке. Можно сделать текст оповещение про ошибку разным в разных местах. Возможно сообщение "Проблема при подключении к БД" есть где-то еще в коде и именно там скрипт вылетает с ошибкой, а не в показанном здесь месте.
Ermak
4.3.2015, 18:23 Вывести статистику
У тебя tek_data это дата целиком, а нужно только значение месяца, замени
Код
// SQL query
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, `tek_data`
        FROM `action_user`
        GROUP BY `friend_name`, MONTH(`tek_data`)";
на
Код
// SQL query
    $query ="SELECT `friend_name`, COUNT(`user_name`) AS `count`, month(`tek_data`) as `tek_data`
        FROM `action_user`
        GROUP BY `friend_name`, MONTH(`tek_data`)";

Еще сильно смущает метод определения массива месяцев, мне кажется лучше вот так
Код
$months = Array(
  1 => 'январь',
  2 => 'февраль',
  3 => 'март',
  4 => 'апрель',
  5 => 'май',
  6 => 'июнь',
  7 => 'июль',
  8 => 'август',
  9 => 'сентябрь',
  10 => 'октябрь',
  11 => 'ноябрь',
  12 => 'декабрь'
  );
Ermak
4.3.2015, 16:19 Счетчик посещаемости на сайте
Наверно переменную $res и $result нужно везде по коду заменить на какое-то одно название переменной. А то в запросе $res
Код
$res=mysql_query($link,"SELECT `id` FROM `action_user` WHERE `ip_user`= '$ip_user' AND `tek_data`>'$time'") or die ("Проблема при подключении к БД");

А в проверках уже $result
Код
if(!mysqli_num_rows($result))
Код
if($result==true)
Ermak
4.3.2015, 13:43 Счетчик посещаемости на сайте
Использую функцию mysql_error() можно понять , что именно не так с подключением.

Хороший ресурс для изучения: http://php.net/manual/ru/function.mysql-error.php
Ermak, onotole
4.3.2015, 10:22 Счетчик посещаемости на сайте
Мне кажется есть вероятность, что в таблице будет более 1 записи для вот этого участка кода,
Код:
 // Узнаем, были ли ip за сегодня    
$res=mysql_query("SELECT `id` FROM `action_user` WHERE `ip_user`='$ip_user'");
$data=mysql_fetch_array($res);
// Если сегодня еще был ip
if (mysqli_num_rows($data) == 1)
{
die("Сегодня вы уже посещали!<a href='index.php'>На главную</a>");
}

Тогда if будет отрабатывать не корректно, стоит учесть это в проверках.

Добавьте проверку даты в запрос
Ermak
4.3.2015, 10:05 Счетчик посещаемости на сайте
Нужно смотреть в логи ошибок, что-то типа apache-error.log
Мне кажется вот эта часть
Код:
// Узнаем, были ли посетитель за сегодня
$res=mysql_query("SELECT `id` FROM `action_user` WHERE `tek_data`='$tek_data'") or die ("Проблема при подключении к БД");
$data=mysql_fetch_array($res);


// Если сегодня еще не было посетителя
if (mysqli_num_rows($data) == 0)
{

$query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user') ";

}

вообще не логичная, можно обойтись без нее.

Постарайтесь в смущающие части кода повставлять echo, для отслеживания состоянию промещуточных переменных. Но лучше пользоватся функцией error_log
Ermak
2.3.2015, 12:17 Unreal Game
Сайт: Unreal.in.ua
Список основных игр:
  • Counter-Strike:1.6
  • CS: Source
  • CS: Source V34
  • CS: Global Offensive
  • GTA: San Andreas Multiplayer
  • GTA: Multi Theft Auto
  • Garry's MOD
  • Lineage II

Список дополнительных услуг:
  • Локальная база данных
  • AMXBans (бесплатно, автоматическая установка)
  • Market (бесплатно, магазин привилегий под вашу систему оплаты)

IP тестовых серверов:
  • cs1.unreal.in.ua:27023 - CS 1.6
  • css1.unreal.in.ua:27025 - CS: Source V34
  • csgo2.unreal.in.ua:28029 - CS:GO
  • gta1.unreal.in.ua:7804 - GTA:SAMP
  • gta1.unreal.in.ua:22109 - GTA:MTA

Тех. Поддержка: Поддержка (Тикеты), JivoSite
Доп. информация:
  • Тест серверов 1-2дня (после регистрации)
  • Локация: Киев, Украина (пока одна)
  • Розыгрыш сервера каждую неделю (группа ВКонтакте)

Используемое оборудование:
  • 2 x Intel® Xeon® L5520 48 Гб DDR3 RAM
evil, msklava