Форум Donate Engine

Поддержка CMS Donate Engine

Вы не вошли.

#1 23-01-2015 21:07:23

alex0
Пользователь

Ошибка и 1 касяк в prefix.php

Заглянув однажды в базу нового пекса с uuid я сильно ужаснулся.
1) Баг. При смене прификсов они не перезаписываются, а добавляются новые и новые. В итоге у премов стало по овер90 записей префиксов.
Фикс ниже.
prefix.php дописать чистку перет записью префикса.
$q = mysql_query('DELETE FROM ' . $server[$sid]['perm'] . PERMISSIONS . $server[$sid]['suf'] . ' WHERE name="' . $uuid . '" AND permission="prefix"', $cpex);
                $q = mysql_query('DELETE FROM ' . $server[$sid]['perm'] . PERMISSIONS . $server[$sid]['suf'] . ' WHERE name="' . $uuid . '" AND permission="suffix"', $cpex);
2) Игроки придумали моду ставить префикс разными китайскими символами.
Фикс ниже
создаем функцию
function normalize_symbol($a) {
    return preg_replace("/[^a-zа-я\s\]\[&0-9]/ui","",$a);
}
prefix.php выполняемм ее в .
$pref    = mb_substr(normalize_symbol($_REQUEST['pref']), 0, 16);

Вне форума

#2 23-01-2015 21:25:44

Online
Administrator

Re: Ошибка и 1 касяк в prefix.php

Вероятно, в вашей базе куда-то уникальные индексы подевались.

Вне форума

#3 24-01-2015 10:10:36

alex0
Пользователь

Re: Ошибка и 1 касяк в prefix.php

Может потому что там и нет уникальности? Ты об этом не думал? Это не моя ошибка уж точно.
Ведь префикс ставится всегда разным, о какой уникальности может идти речь ?
Да и name тоже нельзя назвать уникальным, оно повторяется как минимум 3 раза.
Лучше исправте чтоб у других не возникало проблем. О себе то я уже позаботился.
Мой вариант универсальный и почистит все дубликаты префиксов, если были.

Вне форума

#4 24-01-2015 14:03:07

Online
Administrator

Re: Ошибка и 1 касяк в prefix.php

Через phpMyAdmin зайдите пожалуйста в структуру таблицы PermissionEx и проверьте индексы.

Вне форума

#5 25-01-2015 00:06:18

alex0
Пользователь

Re: Ошибка и 1 касяк в prefix.php

Ты будешь так кажного лечить?
У меня таблици из коробки после создания пексом, и лишние телодвижения мне никчему.
Почему бы не зделать как в старом пексе delete.

Вне форума

#6 25-01-2015 15:22:06

Online
Administrator

Re: Ошибка и 1 касяк в prefix.php

Когда зарегистрируется более 10000 игроков, сервер не сможет нормально функционировать без индексов, будут зависания в момент выборки привилегий, по этому некоторые администраторы нагруженных серверов не довольны работой PermissionEx и они предлагают использовать .

Вне форума

#7 25-01-2015 18:42:45

maclarens
Пользователь

Re: Ошибка и 1 касяк в prefix.php

кстати заметил такое тоже..префиксы не перезаписываются как положено а делаются новые и новые а старые остаются тоже..но когда у пользователя кончилась группа (она же платная)то все префиксы старые и новые то что он наизменял исчезают.я думаю проблема актуальна если дать разрешение менять префиксы всем..тогда мусору будет немерено от стары префиксов.это да

Вне форума

#8 25-01-2015 19:29:25

Online
Administrator

Re: Ошибка и 1 касяк в prefix.php

Уникальные индексы в структуре таблицы исправляйте пожалуйста:

CREATE TABLE IF NOT EXISTS `permissions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `type` tinyint(1) NOT NULL,
  `permission` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `world` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `value` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique` (`name`,`permission`,`world`,`type`),
  KEY `user` (`name`,`type`),
  KEY `world` (`world`,`name`,`type`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;

Вне форума

#9 27-01-2015 13:25:11

maclarens
Пользователь

Re: Ошибка и 1 касяк в prefix.php

Спасибо сейчас все норм работает!получается это проблема у PEX??потому что таблица создается от PEX сама такая без индексов уникальности,и еще и в INNODB

Вне форума

#10 27-01-2015 20:49:14

Online
Administrator

Re: Ошибка и 1 касяк в prefix.php

Да, именно из-за отсутствия идексов, когда количество пользователей начинает расти, сервер Minecraft начинает притормаживать и чем больше пользователей, тем заметнее тормоза.

Вне форума

#11 28-01-2015 23:04:12

maclarens
Пользователь

Re: Ошибка и 1 касяк в prefix.php

Отправил девелоперам пекса,на доработку вашу копию таблицы пермишн с индексами,может прислушаются.

Вне форума

Низ форума