Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   WWW (http://mangos.ytdb.ru/forumdisplay.php?f=23)
-   -   Работа с DataLife Engine (http://mangos.ytdb.ru/showthread.php?t=1899)

tempura 25.07.2010 16:24

Цитата:

Сообщение от fr3ak (Сообщение 11276)
...вот только просак в том что...

Просак
Цитата:

Ранее слово употреблялось в нескольких устойчивых оборотах (напр. будешь в просаке, попался в преизрядный просак), сейчас же слово употребляется исключительно в разговорной речи в выражении "попасть впросак", что означает оказаться по своей вине в неприятном, неловком положении; выражение известно с начала XVIII века.
outdated, not used in this context.

TIMzs 25.07.2010 22:44

По поводу тестов... заинтересовали... )

Решил выяснить, какой способ быстрее подсчитывает данные.

Тест проводился в php цикле. n - количество раз. Засекалось время в начале работы скрипта и в конце, после чего высчитывалось время выполнения запроса.

Первый тест, выполнялся 200 раз.
Код:

SELECT SQL_NO_CACHE count(`guid`) FROM `creature`
Код работал 0.0197730064392с.

SELECT SQL_NO_CACHE `guid` FROM `creature`
Код работал 16.0518889427с.

SELECT SQL_NO_CACHE count(1) FROM `creature`
Код работал 0.0185179710388с.

SELECT SQL_NO_CACHE count(*) FROM `creature`
Код работал 0.0183970928192с.

Селект без count() отпадает сразу, результат на глаза. Остальные же запросы, было сложно оценить, в плане производительности. Для этого проводился второй тест.


Второй тест, выполнялся 200000 раз.
Код:

SELECT SQL_NO_CACHE count(`guid`) FROM `creature`
Код работал 19.9426920414с.

SELECT SQL_NO_CACHE count(1) FROM `creature`
Код работал 19.7694129944с.

SELECT SQL_NO_CACHE count(*) FROM `creature`
Код работал 19.4894280434с.

count(*) - бесспорный победитель.

fr3ak 26.07.2010 22:33

дак кто нить мне объяснит как же сформировать запрос по правильному, если GMT +3 время (московское).

При этом данные из таблицы статуса после определенного аптайма выглядят следующим образом:
Текущий аптайм: 0 ?nbsp;2 ??bsp;12 ?;
Максимальный аптайм: 0 ?nbsp;3 ??bsp;0 ?;

Именно значения часов минут секунд не выводятся правильно, а через какие то пробелы %)

tempura 26.07.2010 22:38

Цитата:

Сообщение от fr3ak (Сообщение 11462)
...после определенного аптайма...
...через какие то пробелы...

Опять "какие-то", "некие", "неопределенные"? Точные сведения давай - когда, в какой ситуации, почему и отчего.

Цитата:

Сообщение от fr3ak (Сообщение 11462)
выглядят следующим образом:
Текущий аптайм: 0 ?nbsp;2 ??bsp;12 ?;
Максимальный аптайм: 0 ?nbsp;3 ??bsp;0 ?;

?nbsp; - вот это ТВОЯ фигня.
  - вот это неразрывный пробел.
Видишь разницу?

Дальше копайся САМ!!!

TIMzs 26.07.2010 23:14

Код:

../engine/modules/wow/includes/functions/func.php

строка
return "{$d} ?nbsp;{$h} ??bsp;{$m} ?;";

Это ошибка автора. В исходном коде.
Цитата:

?nbsp; - вот это ТВОЯ фигня.
  - вот это неразрывный пробел.
Видишь разницу?
Цитата:

?nbsp; =>  

tempura 26.07.2010 23:50




-----------
Отменяется, в связи с постом 52

fr3ak 27.07.2010 00:01

исходники корявистые
видимо спешил наш автор
2% дописывал и изменял сам

Праведник 27.07.2010 01:43

Исходники автор поправил ещё вчера. И, кстати, полностью отказался от использования функции конверта времени. Это должно быть довольно очевидно, если смотреть. Просто копировал из дебиана и вот так вот получилось. Мелочи жизни. Знающий человек исправит за 2 секунды, даже не всматриваясь. Ну а бездарный копипастер будет дурить голову на пол страницы.

fr3ak 27.07.2010 02:21

Цитата:

Сообщение от Праведник (Сообщение 11473)
Исходники автор поправил ещё вчера. И, кстати, полностью отказался от использования функции конверта времени.

Ссылку в студию на измененные варианты его данных
Т.е. он получается что убил 3 строки в своей чудо таблице статуса сервера? или дописал функцию склонения к тем двум убитым строчкам
:pardon:

Насчет знающих\не знающих, я базируюсь на немного другом аспекте - это веб дизайн, а не кодинг.
Для меня увидеть беду во временных константах - смертельно, так как я даже незнаю где поправить, чтобы он вывел чудесные словосочетания (уже в нормальном просклонённом виде):
часов, минут, секунд


2 tempura:
Цитата:

?nbsp; - вот это ТВОЯ фигня.
  - вот это неразрывный пробел.
Видишь разницу?
Дальше копайся САМ!!!
Что за агр непонятный. про   знает даже второклассник, так что совсем не обязательно тыкать пальцем и указывать на такие ничтожные недочеты. Если не заметил, то с кем не бывает.
P.s. там были строчки где просто ????;??; &??; Но к ним же не допишешь: дней часов минут секунд, ведь бред же получится...
Потом посмотришь, а там, допустим: 3 дней 2 часов 1 минут 2 секунд

Код:

function conventNormTime($nSec) {
        $d = floor( $nSec / (3600*24) );
        $nSec = ($nSec - $d * 3600 * 24);
        $h = floor( $nSec / 3600 );
        $nSec = ($nSec - $h * 3600);
        $m = floor( $nSec / 60 );
      return "{$d}  {$h}  {$m}  ";

Выводит часы минуты секунды в числах.
Все бы хорошо еслиб еще он умел склонять
день дней часы часов минуы минут секунд секунд
И, кстати, данная функция подходит под UTC? ведь он подгоняет помоему кол-во дней в високосном году

Праведник 27.07.2010 02:25

Цитата:

Ссылку в студию на измененные варианты его данных
пожалуйста http://ru-mangos.ru/showpost.php?p=11217&postcount=6

Цитата:

Все бы хорошо еслиб еще он умел склонять
в чём проблема? Функция как бы есть в первых сообщениях.

Цитата:

И, кстати, данная функция подходит под UTC? ведь он подгоняет помоему кол-во дней в високосном году
Данная функция получает значение в секундах, а дальше следует обычная математика. Её веб-дизайнеры тоже не учат?

tempura 27.07.2010 02:41

Цитата:

Сообщение от fr3ak (Сообщение 11474)
2 tempura:
Что за агр непонятный. про   знает даже второклассник, так что совсем не обязательно тыкать пальцем и указывать на такие ничтожные недочеты. Если не заметил, то с кем не бывает.

Не бывает с тем, кто сначала смотрит, а потом постит на форум. Вы этого не сделали. Вам проще докопаться на форуме, чем посмотреть - ну и мне тоже. :) Что посеешь, то и пожнешь. :)

Праведник 27.07.2010 02:56


tempura 27.07.2010 04:54


TIMzs 27.07.2010 11:37

Цитата:

Исходники автор поправил ещё вчера.
Цитата:

tempura, на момент написания вашего сообщения ошибок (если эту мелочь можно так назвать) уже не было
Их не было ещё в 5 утра вчера
На момент написания моего поста изменений не было, код я брал с первой страницы. Ваше сообщение, было изменено, практически через 4 часа, после того, как я свое оставил. tempura тоже оставлял пост, к не исправленным исходникам.

И еще, 5 утра - это сегодня, а не вчера...

Цитата:

Для меня, увидеть беду во временных константах - смертельно, так как я даже не знаю где поправить.
Как копи-пастеры живут... Скопировал-вставил и забыл, как файл называется, что вставлял... А потом простые вопросы задаете.

Softer 19.08.2010 16:14

Народ, а общую авторизацию mangos'a и dle никто не пробовал сделать еще?

tempura 19.08.2010 19:32

Цитата:

Сообщение от Softer (Сообщение 12796)
Народ, а общую авторизацию mangos'a и dle никто не пробовал сделать еще?

Вопрос не понят. Мангос хранит данные о юзерах в своей таблице, ДЛЕ - в своей. Синхронизация требуется? Или слияние этих двух таблиц?

Softer 19.08.2010 21:53

Уже есть готовая база ДЛЕ, хотелось ее задействовать для мангоса...

TIMzs 19.08.2010 22:23

Цитата:

Сообщение от Softer (Сообщение 12812)
Уже есть готовая база ДЛЕ, хотелось ее задействовать для мангоса...

Вы не правильно отталкиваетесь от того, что Вам нужно.

Если есть база данных (DLE) и Вам нужно интегрировать её с мангосом, то что нужно сделать? Правильно, внести изменения в исходный код мангоса и заставить его брать данные из базы DLE.

Второй вариант, дополнить базу мангоса полями, обеспечивающими работоспособность DLE движка, что куда более целесообразно и правильно.
Добавляем недостающие поля, немного переписываем код авторизации DLE и все. Делов-то, на пару часов с пивком )

Праведник 29.08.2010 04:40

Прошу прощения за отсутсвие поддержки по данной теме некоторое время. Были разного рода проблемы.

По сути заданного вопроса: Действительно, товарищ Тимз прав: лучше всего добавить необходимые поля именно к таблице аккаунтов. Делается сие элементарно, но... всегда есть свои "но".

1. Вам придётся отредактировать также файлы авторизации, регистрации (разумеется) и восстановления паролей, а это подразумевает хотябы минимальное понимание php, mysql.
2. Время от времени в дле находят критические уязвимости, с которыми можно запросто потерять контроль над сайтом, а в некоторх случаях и над сервером.
3. Чую попой, что 90% рунета использует так называемые "nulled" версии. Не для кого не секрет, что люди, которые их изготавливают, имеют свой собственный интерес. В таком случае вероятность п.2 увеличивается по экспаненте (в зависимости от автора нула).

Вывод: понты - это безусловно красиво, но целесообразно ли?

Праведник 14.09.2010 16:13

Адресовано тем, кто использует у себя DataLife Engine 9 версии:

Проблема: Недостаточная фильтрация входящих данных.

Ошибка в версии: Все версии

Степень опасности: Высокая

Для исправления откройте файлы engine/modules/search.php и engine/modules/fullsearch.php и найдите:

PHP код:

$count_result 0

ниже добавьте:
PHP код:

$sql_count ""

Откройте файл engine/inc/templates.php и найдите:

PHP код:

$allow_save false

ниже добавьте:
PHP код:

$_REQUEST***91;'do_template'***93; = trimtotranslit($_REQUEST***91;'do_template'***93;, falsefalse) );
$_REQUEST***91;'do_language'***93; = trimtotranslit($_REQUEST***91;'do_language'***93;, falsefalse) ); 


Softer 16.09.2010 13:07

Цитата:

1. Вам придётся отредактировать также файлы авторизации, регистрации (разумеется) и восстановления паролей, а это подразумевает хотябы минимальное понимание php, mysql.
2. Время от времени в дле находят критические уязвимости, с которыми можно запросто потерять контроль над сайтом, а в некоторх случаях и над сервером.
3. Чую попой, что 90% рунета использует так называемые "nulled" версии. Не для кого не секрет, что люди, которые их изготавливают, имеют свой собственный интерес. В таком случае вероятность п.2 увеличивается по экспаненте (в зависимости от автора нула).

Вывод: понты - это безусловно красиво, но целесообразно ли?
1. Знания есть :)
2. Баги и дыры есть везде, идеальный код - разве что Hello world :-D
3. Само собой, просто нужно пробежаться по коду внимательно перед юзанием ;)

Вывод: исходя из п.1. - написал свою мини-CMS с авторизацией от `realmd`.`accounts` ;-)

tempura 16.09.2010 20:40

Цитата:

Сообщение от Softer (Сообщение 14107)
2. Баги и дыры есть везде, идеальный код - разве что Hello world :-D

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

Праведник 16.09.2010 21:20

Фишка в другом: DLE/Joomla/Друпал и т.д. и т.п. - довольно используемые движки с открытым (привед нулерам) кодом. В них специально ищут ошибки как логики, так и программирования. При нахождении ошибок, как правило, они вылетают в паблик.

Не все администраторы каждые 10 минут клацают кнопку "обновить" на оф сайте производителей, в надежде увидеть заплатку (ну или хотябы инфу об уязвимости). В период, пока будет выпущена заплатка и её установят, школота (и не только) сложит кучу сайтов тупо ради удовольствия. Достаточно вспомнить случай с версией 8.2, в которой при формировании лёгкого запроса можно было получить любой пароль от любого участника. Это была повальная эпидемия... кого не хакнули - тот просто был неинтересен.

Что касается самописных цмс: Их, как правило, в паблик не выбрасывают, а значит и найти ошибку в коде становится несколько затруднительно. А если учесть тот факт, что цмски используются в ограниченном кол-ве, то ещё и по сути бесполезным.

Разумеется, что если захотят сломать, сломают. Это вопрос квалификации и желания.

tempura 16.09.2010 23:06

Цитата:

Сообщение от Праведник (Сообщение 14158)
Что касается самописных цмс: Их, как правило, в паблик не выбрасывают, а значит и найти ошибку в коде становится несколько затруднительно. А если учесть тот факт, что цмски используются в ограниченном кол-ве, то ещё и по сути бесполезным.

Вот ту мимо, как мне кажется. :) Коммерческие проекты, за вырубание которых можно срубить бабло, не делаются на открытых (в т.ч. ломаных) cms, только на чьих-то приватных разработках. Скорее уж их устойчивость в том, что найти заказ на такой хак непросто... :)

Праведник 28.09.2010 15:40

Автоцензором немного поломали код. Так что если будут вопросы, задаём.

tempura 28.09.2010 16:04

аттачем приложи

BeLove 29.09.2010 09:42

Цитата:

Сообщение от TIMzs (Сообщение 12813)
Вы не правильно отталкиваетесь от того, что Вам нужно.

Если есть база данных (DLE) и Вам нужно интегрировать её с мангосом, то что нужно сделать? Правильно, внести изменения в исходный код мангоса и заставить его брать данные из базы DLE.

Второй вариант, дополнить базу мангоса полями, обеспечивающими работоспособность DLE движка, что куда более целесообразно и правильно.
Добавляем недостающие поля, немного переписываем код авторизации DLE и все. Делов-то, на пару часов с пивком )


Третий вариант изменить авторизацию в DLE и заставить его делать селект из базы аккаунтов мангос при вводе логина/пароля.
Так сделал в sb wow галерее :)

TIMzs 02.10.2010 13:32

Цитата:

Сообщение от BeLove (Сообщение 14591)
Третий вариант изменить авторизацию в DLE и заставить его делать селект из базы аккаунтов мангос при вводе логина/пароля.
Так сделал в sb wow галерее :)

С закрытыми глазами моё сообщение читали? Во втором варианте так и написано, только нужно понимать, что для работоспособности DLE полей логин\пароль не хватит. Соответственно придется добавить.

snakes 29.10.2010 04:43

А можно еще манульчик как все настройки вывести через админку?

Праведник 28.01.2011 22:44

Цитата:

Сообщение от snakes (Сообщение 15498)
А можно еще манульчик как все настройки вывести через админку?

Пожалуйста:

1) Создаём категорию в админке

Для этого заходим в любой менеджер баз данных, открываем базу с сайтом.
Там ищем таблицу *_admin_sections, где * - перфикс таблицы.
По-умолчанию она должна быть пуста. Вставляем данные в таблицу:

id - ну тут, думаю, всё ясно... от 1 и до +бесконечность.
name - имя модуля* (о нём речь пойдёт чутка ниже)
title - заголовок категории модуля.
descr - описание категории.
icon - иконка (путь указывается относительно папки /engine/skins/images/ (тут расположена графика админки))
allow_groups - группы, имеющие доступ. 1 - айди админов (правда хз зачем он нужен.. читаем ниже).

2 Создаём модуль.

if(понимаем принципы работы с файлами)
{
Создаём файл админки с именем, указанным в поле name таблицы *_admin_sections. В нём пишем код, который будет сохранять настройки ваших модулей. И соответсвенно, читать их.
}
else {
http://www.spravkaweb.ru/php/netfile/file/
}

Сам модуль админки кидаем в папку engine/inc/
Подключение будет произведено автоматически.

P.S.

ВНИМАНИЕ: указание о группах в базе данных не запрещает и не предотвращяет запуск модуля пользователями из других групп. Для разграничения доступа ваши подключаемые модули обязаны сами производить проверку групп и разрешать выполнение только разрешенным группам.

ObeDve 07.11.2011 15:59

Праведник, можно пример регистрации учетной записи через DLE, с созданием аккаунта в игре?


Текущее время: 19:40. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS