|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
WWW Web интерфейс для MaNGOS |
|
Опции темы | Поиск в этой теме | Опции просмотра |
08.03.2010, 07:27 | #1 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
[control panel] ACP - Панель управления учетными записями.
Описание
ACP (Account Control Panel) – предназначена для управления игроками аккаунтами и персонажами. (Он же личный кабинет). Написана на PHP. Главный девиз программы «чем проще - тем лучше». Но некоторой "паранойи", в виде подтверждений по емайлу, не помешает. Функционал * регистрация нового аккаунта * восстановление пароля к аккаунту по средствам электронной почты * просмотр информации об аккаунте и персонажах * смена пароля, * смена емайла, * смена типа аккаунта (wow, tbc, wotlk) * lock / unlock аккаунта * вытаскивание персонажа из застреваний * переименование персонажа * перенос персонажа на другой аккаунт * телепортация персонажа в дружественную столицу * просмотр информации о банах * просмотр доступных команд сервера * просмотр объявлений autobroadcast-a * логирование всех важных операций Требования * PHP 4.x - 5.3.3 * MySQL 4.x и выше * Mangos 3.1.3 сборка 8072 или выше * Патч Autobroadcast (не обязателен). * register_globals = Off * safe mode off Установка Установка проходит в 2 этапа: 1. Импортируйте SQL/acp.sql в БД acp(lk) 2. Отредактируйте config/config.php (все пояснения для настройки есть в самом файле.) 3. Внести данные о реалмах в config/realmlist.php Заметки Это мой первый полный проект. До этого ограничивался подгонкой под себя того что уже есть. Но в определенный момент понял, что нормального, в моем особом понимании этого дела, личного кабинета не существует. Со всем уважением к TIMzs, но его кабинет не давал мне того, чего хотелось. Вот я и решил сделать всё сам. Понимаю, что некоторые участки кода можно переделать и оптимизировать, но познания в PHP растут вместе с этим маленьким проектом…. Большое количество шкурок вызвано моим интересом «а как ACP будет смотреться в дизайне вон того сайта?»… Забыл добавить, что в файле английского интерфейса(include/text.en.php) залиты русские тексты в utf-8. Кому понадобиться, тот переведёт. Последняя версия - 2.33 (2 - версия движка, 33 - ревизия). ВНИМАНИЕ! Первая версия движка никогда мной не была доведена до ума и полной работоспособности. На определенном этапе разработки АСР, был написан с нуля движок 2-ой версии. Работы по первой версии были полностью и бесповоротно прекращены. Те администраторы, которые используют старый движок должны знать, что в нем есть куча дыр, неисправностей и прочих косяков. За утрату информации сервера, при использовании АСР-1, вы сами несете ответственность. -------- Послесловие Выражаю огромную благодарность Камекадзе, TIMzs, Antimatrix и другим участникам форума, из чьих работ я брал идеи для своего проекта. ---------------------------- tempura Автор очередного вопроса на тему "что дальше?", "когда будет?" и т.п. - автоматически вылетает в Рид-Онли на пару недель. В соответствии с общепринятым правилом "сначала читайте шапку, потом всю ветку". Последний раз редактировалось Кот ДаWINчи; 26.07.2012 в 20:05. |
81 пользователя(ей) сказали cпасибо: | Alehander (11.03.2010), angelShlesser (25.03.2010), anvd24 (11.05.2010), blackmanos (18.07.2010), Chaosua (18.04.2010), CruncH (15.05.2010), DeusModus (08.03.2010), dikabraz (31.08.2012), ExC0tiC (08.03.2010), Fedia22 (11.06.2010), Feel the Power (02.06.2010), Hantet (16.03.2010), KiriX (08.03.2010), Konctantin (08.03.2010), labor (05.05.2010), Lightunit (17.06.2010), lina (01.04.2012), Lurker (10.03.2010), Mayss (07.04.2010), Medivh (09.03.2010), mozilla (13.03.2010), Neggod (08.03.2010), ObeDve (17.12.2010), PSZ (23.03.2010), Rave (19.02.2011), rootor (08.03.2010), selector (22.04.2010), Sergey (14.04.2010), SergZ (15.01.2011), sven (19.04.2010), Viste (10.03.2010), _PARADOX_ (02.06.2010), Дмитрий "Айдин" (05.06.2010) |
09.03.2010, 05:38 | #2 |
Гость
Сообщений: n/a
|
А changelog_и какие-то сохранились ? На подобии rev.|change.
|
09.03.2010, 09:31 | #4 |
Гость
Сообщений: n/a
|
Таки не добавил
/modules/charedit.php Код:
echo '<br>'.$txt[132]; // revive member $res = mysql_query("DELETE FROM `corpse` WHERE `player` = ".$_POST['character']); if ($res) echo $txt[92].'<br>'; else echo $txt[93].'<br>'; Код:
132=> 'Воскрешение - ', |
Пользователь сказал cпасибо: | KiriX (09.03.2010) |
09.03.2010, 21:12 | #6 |
Гость
Сообщений: n/a
|
отчего же. По мере необходимости ещё выставить добавление марки, что бы не злоупотребляли
|
09.03.2010, 21:36 | #7 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
рев. 11 в репозитории.
Код:
- Все правки за последние месяцы. - Перевод под 3.3.2. - смена пола (есть проблемы с парикмахерами). - улучшение защиты скрипта. - патч от Desperado |
09.03.2010, 22:05 | #8 |
Гость
Сообщений: n/a
|
Зачем так официально)
поставил и фиг с ним кому-то пригодится. Тем более назвать 6 строк кода патчем - как-то язык не выворачивается |
10.03.2010, 03:03 | #9 |
Пользователь
Регистрация: 08.03.2010
Сообщений: 55
Сказал(а) спасибо: 26
Поблагодарили 17 раз(а) в 9 сообщениях
|
Хорошо если бы добавили донат систему! И что бы можно было выбрать включить или выключить!
Так же нашёл мелкий баг в acp Последний раз редактировалось angelShlesser; 10.03.2010 в 03:07. |
10.03.2010, 03:15 | #10 |
Гость
Сообщений: n/a
|
не нужно портить хороший ЛК всяким гамном типа донат системы.
Аналогичные функции выполняет изложенный в соседней теме. |
10.03.2010, 08:38 | #11 |
Гость
Сообщений: n/a
|
это только у меня? или на самом деле на свн стоит лог и пасс?
|
10.03.2010, 08:42 | #12 |
Пользователь
Регистрация: 08.03.2010
Адрес: Ukraine
Сообщений: 41
Сказал(а) спасибо: 18
Поблагодарили 56 раз(а) в 20 сообщениях
|
|
10.03.2010, 12:27 | #13 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Кот ДаWINчи, я читал, что ты собираешься забрасывать свою разработку ЛК и в последующем он будет выходить лишь в составе более крупного какого-то проекта.
Почему? Прекрасный ЛК (не считая недоработанный модуль баг-трекера, который, как мне кажется, можно было бы довести до ума и он был бы очень удобен). Глобальных проектов много. И они очень неплохие (CSWOWD, AOWOW), но вот хорошего ЛК реально не хватает... Может не стоит забрасывать это дело? Пжалста!!! |
Пользователь сказал cпасибо: |
10.03.2010, 18:48 | #14 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
KiriX, то ли я не правильно выразился, то ли народ не понял мои невнятные объяснения. Но дело обстоит совсем не так.
Итак, объясню свою позицию общественности - в стиле "от и до...": Эта история началась где-то год назад. Кто давно на этом форуме (getmangos.ru), те наверное помнят тему с ЛК Тimz-a. То как они с Камекадзе делили авторство.... и т.п. В то время я, как и многие другие, попытался помогать в разработке ЛК Тimz-a. Но все мы получили интересный ответ от автора: "Вам надо, вы и придумывайте дополнительные опции к ЛК...". Вот тогда я и понял, что спасение утопающих... В марте, апреле я сел за плотное изучение PHP и MySQL, а к концу Мая родилась мысль сделать свой ЛК. И вот тогда я совершил свою первую ошибку. Я начал делать ЛК, не продумав все до мелочей. В результате по осени пришлось переходить на АСР2. И вот сейчас та же проблема. Мои "хочу" и "могу" ушли выше возможностей, созданного движка. Порой, я открываю давно написанные мной файлы, и с новых высот моего познания (с табуретки ) вижу столько огрех, что охота сесть и переписать всё с нуля. Поэтому, чтобы не тратить время зря, я решил сделать более интуитивный движок для ЛК. Сразу же в нем продумать и заложить некоторые избыточные функции, а так же особое внимание уделить на защиту от проникновения на сервер, удобность, гибкость и понятность для пользователя у движка. Сделать всё модульным. Те кто видел joomly 1.0.xxx со стороны администрирования поймут меня. Вот к этому я и стремлюсь. Эдакая джумла в миниатюре, ориентированная на работу с мангосом, в особенности с аккаунтами и героями. Новый проект - это просто очередной виток развития АСР, но я не хочу называть его "АСР 3"... Будет новое имя. Я все так же противник так называемой "админки". Интерфейс будет единый, но вот функционал... Он будет расширятся или ограничиваться в зависимости от gmlevel-а посетителя. Но сразу скажу, это будет всё тот же кабинет, только более расширенный. Сейчас идет стадия осмысления и написания основы движка, потом начну переносить в него модули. Часть работы уже сделана, но это пока капля в море. Что-то более менее работоспособное появится летом. Последний раз редактировалось tempura; 10.03.2010 в 19:08. |
10.03.2010, 21:38 | #15 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
Кот ДаWINчи, я думаю все осмыслить сразу сложно поэтому и бывает рефакторинг кода
а по поводу авторства и тп,(смотреть под какими лицензиями были те проекты не хочется, лениво ), но если они под свободными Open Source лицензиями GNU GPL, BSD и тп, можно спокойно форкать и продолжать дело самому, соответственно соблюдая все каноны лицензии, и авторы того проекта могут только по "фырчать" в твою сторону и не более. На то они и свободные Ну а по поводу нового или правильного кода(сам не смотрел что там и как написано), лучше для больших( и вообще) писать код и потом выделять его в классы и отдельные функции. Так чтобы потом не писать с "0", а использовать готовые наработки. Да и другим будет удобнее. Последний раз редактировалось CruncH; 10.03.2010 в 21:41. Причина: Дописал то, что забыл |
10.03.2010, 21:57 | #16 |
Гость
Сообщений: n/a
|
|
10.03.2010, 23:01 | #17 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Ввиду этого настоятельно рекомендую вам научиться пользоваться TortoiseSVN и выкачивать SVN репозитории. В противном случае если вы напишете ещё раз пост (в любой теме), в котором будет написано, что "черепаха" требует логин и пароль, я буду вынужден на неделю лишить вас права писать на данном форуме... |
|
3 пользователя(ей) сказали cпасибо: |
13.03.2010, 10:20 | #18 |
Гость
Сообщений: n/a
|
Возникла проблема с кодировкой в ACP2.
Дефолтовое значение utf8 в config.php работает нормально, но постоянно приходится переключатся между кодировками в браузере. Если выставить в конфиге cp1251, ЛК зависает, а веб сервер выдает ошибку "falied to open stream: No such file or directory in D:\xxxxx\acp2\index.php on line 7". В первом ACP все работает как часы, а здесь нет. |
13.03.2010, 10:31 | #19 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Хотелось бы всех предупредить, что в коде этого весьма полезного продукта есть несколько ошибок, позволяющих без проблем за 5-10 минут взломать Ваш сервер, получить админские права (прямо через сайт), вынуть или уничтожить в базе любую информацию (только если sql-сервер глядит в Сеть). Методы защиты - стандартные от sql poison.
|
Пользователь сказал cпасибо: | tempura (13.03.2010) |
13.03.2010, 10:55 | #20 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
FWS
http://ru-mangos.ru/showthread.php?t=274 тут про кодировки специально написал rsa Не могли бы вы в приват автору описать что и как? Я понимаю, ему будет удобнее иметь пример перед глазами, для исправления?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
Пользователь сказал cпасибо: |
13.03.2010, 13:05 | #21 |
Гость
Сообщений: n/a
|
Всем добрый день, возникла такая прорблема на версии ACP 1 при использование модуля смены пароля аккаунта, менялся пароль только для ACP, тоесть пароль для входа в игру каким то образом оставался прежним. Скажите, на версии 2 это уже не так? Я конечно понимаю что скачать и настроить дело пары минут, но всё же буду благодарен если кто то отпишеться на счёт этого
|
13.03.2010, 14:04 | #22 | |||
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Кот ДаWINчи; 13.03.2010 в 14:33. |
|||
2 пользователя(ей) сказали cпасибо: |
13.03.2010, 15:31 | #23 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
страдает недержанием также и генератор рандома для восстановления паролей. |
|
13.03.2010, 16:58 | #24 | |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Я с большим удовольствием приму ваш багрепорт, и внесу изменения в скрипты. Ко всему прочему, поясните, чем провинился генератор рандома. (Тоже желательно на фактах). Добавлено: Не стал дожидаться ответа rsa. Подключил protect.php Код:
<?php //Обработка $_POST reset($_POST); while ($post_name = current($_POST)) { $_POST[key($_POST)] = addslashes($post_name); $union_post = strpos(strtoupper($post_name),'UNION');//Если найдем UNION, то обрубаем строку! if ($union_post != false) $_POST[key($_POST)] = substr($post_name,0,$union_post); unset($union_post); next($_POST); } //Обработка $_GET reset($_GET); while ($get_name = current($_GET)) { $_GET[key($_GET)] = addslashes($get_name); $union_get = strpos(strtoupper($get_name),'UNION');//Если найдем UNION, то обрубаем строку! if ($union_get != false) $_GET[key($_GET)] = substr($get_name,0,$union_get); unset($union_get); next($_GET); } ?> Последний раз редактировалось Кот ДаWINчи; 13.03.2010 в 23:18. |
|
13.03.2010, 19:09 | #25 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
|
13.03.2010, 20:05 | #27 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
Ни одна операция не логируется
|
13.03.2010, 20:36 | #29 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
Показ ошибок включил. Где их выводить он должен, не понял
Поменял в конфиге базу для лк на realmd, залив туда sql. Логи стали вестись. Что я упустил? |
13.03.2010, 21:04 | #31 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
Создавал так:
PHP код:
|
13.03.2010, 21:07 | #32 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
Дырка в charedit.php (возможно) заткнута через новую проверку, но надо тестировать. Давать советы дело неблагородное, я лучше кину несколько строк из реально имевшей место атаки. Я себе дырки позатыкал но уже не помню где и как конкретно. "GET /ACP2/index.php?modul=gilds&page=1&show=66+union+select+ 1--+ "GET /ACP2/index.php?modul=charedit%27+union+select+1-- "GET /ACP2/index.php?modul=char&id=106197+UNION+SELECT+1/* HTTP/1.1" "GET /ACP2/index.php?modul=char&id=106197)+and+1=union+select +*+from-- "GET /ACP2/index.php?modul=char&id=106197)+unionselect+*+fr om(select+*+from(select+name_const( "GET /ACP2/index.php?modul=char&id=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303 536 строки не окончены, они длинные. но понять куда и как целились можно. |
|
13.03.2010, 21:26 | #33 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
Баг: если на аккаунте уже есть дк, то туда никого больше не перенести.
|
13.03.2010, 22:57 | #34 | |||
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Цитата:
Цитата:
|
|||
13.03.2010, 23:20 | #35 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Это в августе-октябре горячо обсуждалось на старом форуме. К общему мнению тогда не пришли, но решили, что "рассадник" ДК путем переноса делать нельзя.
Последний раз редактировалось Кот ДаWINчи; 14.03.2010 в 19:20. |
Пользователь сказал cпасибо: | mozilla (14.03.2010) |
14.03.2010, 16:16 | #36 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
С ним теперь ни одна функция чаредита не работает. Выбираешь действие, нажимаешь выполнить и выскакивает пустая страница.
|
14.03.2010, 19:26 | #37 | |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Пока разбирался с ДК... потер вчера пару скобок. Сегодня взял версию с СВН и нормально внес правку. Коммит 14 уже залит. |
|
16.03.2010, 19:57 | #38 |
Гость
Сообщений: n/a
|
Спасибо за заботу о кодировках, теперь все работает как надо
Но возник еще вопрос. В управлении учетной записью отсутствует возможность смены адреса электронной почты. В конфиге нет никаких параметров для данной функции. Это ошибка или временная мера? |
16.03.2010, 21:49 | #39 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
это моя переделка "под себя".
файл modules/acc.php строчки 48 и 49 должны быть такими: Код:
<td height="40" align="center" valign="middle"><input name=id type=radio value='2' /></td> <td height="40" valign="middle"><?php echo $txt[7]; ?></td> Последний раз редактировалось Кот ДаWINчи; 16.03.2010 в 22:05. |
Пользователь сказал cпасибо: |
17.03.2010, 10:21 | #40 | ||
Новичок
Регистрация: 13.03.2010
Адрес: Самара
Сообщений: 20
Сказал(а) спасибо: 13
Поблагодарили 2 раз(а) в 1 сообщении
Записей в дневнике: 1
|
Цитата:
PHP код:
И еще одно.. При попытке залогиниться получил следующую ошибку: Цитата:
Последний раз редактировалось Kujbor; 17.03.2010 в 11:27. |
||
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10288] Unsummon pet if pet direct control spell expire out of visibility range from owner. | newsbot | CMaNGOS Commits | 0 | 30.07.2010 04:14 |
[10186] Fixed visibility constant refresh problem with pet direct control spells. | newsbot | CMaNGOS Commits | 0 | 13.07.2010 01:26 |
[patch] Mind Control | PSZ | Отвергнутые патчи | 3 | 14.06.2010 10:54 |
[10053] Use UNIT_STAT_CONTROLED for mark unit state under direct player control. | newsbot | CMaNGOS Commits | 0 | 14.06.2010 09:30 |