|
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) |
17.06.2010, 07:50 | #121 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
На старых базах (работающих уже 2-3 года) есть такая беда.
Варианты проблемы: 1. Всё это началось, когда в 3.0.9 (вроде в этой версии клиента) изменили порядок работы сервера с паролем и сессиями. дело заключается в том что некоторые ЛК старых версий некорректно обновляют пароль в базе. при смене пароля не стирается содержимое полей sessionkey, v, s. Из-за этого может возникнуть ситуация, когда в sha_pass_hash находится один пароль, а в сессии сервера остался другой. при таком раскладе в игру некоторое время будет пускать по второму паролю, а в ЛК по первому. Решение - просто остановить сервер и стереть содержимое у всех sessionkey, v, s. НО может получиться так, что у части пользователей будут утеряны их пароли. Можно попросить пользователей сменить пароль через консоль игры. 2. Все аккаунты должны быть написаны в базе заглавными буквами. Это еще так с 2.4.3. И не желательно писать аккаунты русскими буквами. В модулях регистрации и напоминания пароля АСР все эти нюансы уже учтены. |
17.06.2010, 08:37 | #122 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
|
Спасибо за ответ.
Так же, в Баг-трекере не отправляются сообщения с некоторыми элементами оформления текста. Например со смайлами. |
19.06.2010, 13:07 | #124 |
Гость
Сообщений: n/a
|
Собственно переработка под 5.3.х + немного подчистило лишние пробелы (это не я, программка сама при сохранении ) + рекомендую все же стартовать сессии в любом случае (к примеру у меня проверка на session_name() не прошла).
|
Пользователь сказал cпасибо: |
25.06.2010, 20:48 | #125 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Нет, ну это просто праздник какой-то... Такое впечатление что дыры в безопасности этого продукта напиханы специально Про некоторые я уже писал, вот еще (рев. крайний)
Код remember.php: === mysql_query('insert into `mail` (`random`, `account`, `email`, `mode`) values ("'. ... $mail_code.'", '.$_POST['id'].', "'.$_POST['email'] $mail_body2 = '<a href="'.$http_mail.'">'.$http_mail.'</a>'; $post_mail = $_POST['email'];^ require("include/mailsend.php"); === Долго создаем письмо с кодом на восстановление пароля, красивое письмо. И составляем его на тот id аккаунта и тот емейл, что нам пользователь в POST дал, а вовсе не на те значения, которые нами ранее в $query = "SELECT * FROM `account` WHERE `email` like '".$_POST['email']."';"; получены.. Вывод - юзер подменяет форму и имеет восстановление пароля от любого аккаунта на любой емейл, и плевать что там в базе данных прописано.... Тем более что потом в процедуре проверке магиккода так же никаких проверок на валидность емейла не обнаружено |
25.06.2010, 21:01 | #126 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
ПРОЕКТ ЗАКРЫТ.
т.е. разработка теперь идет чисто для себя. =================================== На данный момент последние исправления все внесены в проект. Последняя ревизия 25 (на SVN). Я занимаюсь новым проектом, в который позже буду переносить все наработки из данного АСР. Перенос будет производиться путем написания НОВОГО кода на основе идей из старых функций. Дата публикации нового проекта не определена, т.к. сейчас я пишу свой движок, в котором пока созданы общеупотребительный функционал типа новостей, комментариев, ссылок, менюшек, шаблоны и модульно-панельная система размещения контента. На вопросы по старому АСР отвечаю в данной теме. Последний раз редактировалось Кот ДаWINчи; 15.08.2010 в 22:09. |
19.09.2010, 09:36 | #127 |
Гость
Сообщений: n/a
|
При переходе по ссылке для восстановления пароля пишет что ссылка уже устарела, прошу помощи.
|
19.09.2010, 16:03 | #128 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
1. проверь правильность таблицы mail в базе АСР.
2. 7 и 25 строчка modules/mail.php функция eregi в ПХП 5.3.х должна быть заменена на аналог. 3. ну и обновись до последней версии. |
Пользователь сказал cпасибо: |
19.09.2010, 16:16 | #129 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
|
Не рекомендую использовать восстановление пароля, т.к. есть риск взлома аккаунтов.
Дождитесь нового проекта от Кот ДаWINчи Последний раз редактировалось Lightunit; 19.09.2010 в 16:21. |
20.09.2010, 17:42 | #131 |
Гость
Сообщений: n/a
|
спс, первую проблему решил теперь еще одна ...
при восстановлении пароля через емайл после выбора аккаунта выдает "Вам запрещён доступ к этой странице!" |
20.09.2010, 18:49 | #132 | ||
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Цитата:
или причина может крыться в том, что не выбирается из базы аккаунт в строке: Код:
$resM = mysql_query("SELECT `id`,`email` FROM `account` WHERE (`id`=".(int)$_POST['id'].") and (`email` LIKE '".$_POST['email']."') and (`active_realm_id` = 0) LIMIT 1;"); Последний раз редактировалось Кот ДаWINчи; 20.09.2010 в 18:59. |
||
20.09.2010, 21:49 | #133 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Tag
Не пора ли начать приводить логи?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.09.2010, 12:15 | #135 |
Пользователь
Регистрация: 08.03.2010
Сообщений: 43
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Нет ограничения на число попыток входа, подбор пароля возможен любой прогой.
|
27.09.2010, 12:51 | #136 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
|
27.09.2010, 13:09 | #137 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Поставить капчу на вход и проблема решена.
|
27.09.2010, 13:53 | #138 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Не так уж много современных посетителей инета знают что такое "сложность пароля", сколько им не долби это на всех углах. И в тоже время - школота через одного качает завирусованые бинарники "подбери пароль за пять минут", которые по словарям и правда вскроют пароль qwe123rty за кратчайшее время.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
29.10.2010, 21:56 | #140 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Впереди зима, а значит вечерами появится время поработать в ПХП. Уже решил, что постараюсь реализовать свой следующий проект, который плавно вытекает, и заимствует всё самое полезное из АСР. Это будет уже не "личный кабинет" а полноценный сайт со всеми функциями ЛК и еще много чем. Как будет называться - еще не решил, но точно не АСР3.
Рассмотрю все здравые идеи функционала для нового проекта. Пишите в этой теме. |
Пользователь сказал cпасибо: | Lightunit (30.10.2010) |
29.10.2010, 23:15 | #141 |
Новичок
Регистрация: 17.10.2010
Сообщений: 24
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
|
поддержка 2.4.3 будет или только 3++ ?
|
03.11.2010, 09:37 | #144 |
Гость
Сообщений: n/a
|
Случайно не оперой пользуетесь в качестве браузера.
Не уверен что именно так в данном случае, но если авторизация в АСР реализована на куках, причина в этой связке. |
03.11.2010, 09:52 | #145 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
АСР использует стандартные сессии апача. БЕЗ куков. Данные о сессии хранятся в темп-папке сервера.
Код АСР проверялся на работу в IE(6,7,8), Opera (9,10) FF(2,3,4б), Safari, Crome и еще нескольких браузерах. Space77, а к чему ваш пост? В ответ к какому посту? |
22.11.2010, 21:01 | #149 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Рева 26 ....
Код:
Внеплановая ревизия, чтобы не потерять былые труды. acp: - новая функция для работы с редактором (убирает начальные и концевые пробелы) - проверка редакторов новостей, публикаций и багрепортов - Косметические настройки в TINY_MCE - обновлен дамп базы. (Чтобы прежние труды не пропали). - обновлен список игровых зон для 333а и 335а CharEdit: - Новая версия под 333а и 335а - исходники обновлены. |
02.12.2010, 11:25 | #150 | |||
Гость
Сообщений: n/a
|
Добрый день. В ходе освоения с ЛК возникло несколько вопросов. Прочитав всю тему, как вы советовали выше, часть устранил. Но вот главной - авторизации, так и не могу добиться.
Ситуация уже несколько раз описывалась в данной теме - "При попытке входа в ЛК ничего не происходит." При этом никаких сообщений про ошибки не получаю, хотя в *.htaccess у меня стоит php_value display_errors On и в config.php включено отображение ошибок. Единственное внятное пояснение дали опять таки вы. Цитата:
Единственное сообщение о ошибке, которое мне удалось отловить, выдается при регистрации аккаунта, оно имеет вид: Цитата:
Цитата:
|
|||
02.12.2010, 12:37 | #151 | |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
вторая - файлы в UTF8 кодировке с BOM. Если конфиг правили виндовым блокнотом, то так оно и есть. |
|
02.12.2010, 14:46 | #152 |
Гость
Сообщений: n/a
|
Прошелся по всей директории программкой utf8-bom-remover.exe гарантировано нет BOM.
Создал временный директорий /tmp (права на папке 777) и поправил в php.ini согласно гайда по настройке apache+mysql+php5 Код:
session.save_path = "/tmp" session.save_handler = files session.cache_limiter = public session.cookie_path = "/tmp" variables_order = EGPCS Имеет-ли значение ОС под которой это все происходит? Платформа работает на OpenSuse 11.3. Последний раз редактировалось Fima; 02.12.2010 в 14:57. |
02.12.2010, 19:30 | #153 | |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
PHP код:
Последний раз редактировалось Кот ДаWINчи; 02.12.2010 в 19:33. |
|
Пользователь сказал cпасибо: |
02.12.2010, 20:05 | #154 | ||
Гость
Сообщений: n/a
|
Комментирование помогло, ошибка ушла, создание аккаунта проходит успешно. Осталось преодолеть последнее
Цитата:
Цитата:
Чуть позже ... Запустил на xampp-win32-1.7.1 свежескачанный ЛК, ни одной проблемы или сообщения не видно, кроме отсутствия возможности логина в этот ЛК, то есть страница "моргает" и снова стартовая страница входа в ЛК. Все сообщения о ошибках на web-сервере включены, и, подозреваю, в момент "моргания" страницы, нужные сообщения могут показываться, но вот как добраться до них. Бум читать логи апача. И еще попозжа... Чтение логов Apache ни к чему не привело, в имеющихся 2-х log-файлах, ...-error_log и ...-access_log, кроме ошибок получения доступа к несуществующим файлам (недельной давности) ничего. Но вот анализ HTTP заголовков, которыми обменивается браузер с сервером наталкивает на мысль. Итак при нажатии на кнопочку "Войти" имеем следующее Код:
NO. TimeStart Duration(s) Method Result Received Type URL RedirectURL 46 02.12.2010 22:03:54 0.00 POST 0 (None) http://localhost/ACP/index.php?modul=static&id=1 47 02.12.2010 22:03:58 1.97 GET 200 4493 (None) http://localhost/ACP/index.php?modul=static&id=1 48 02.12.2010 22:04:00 0.00 GET 304 2707 application/octet-stream http://localhost/ACP/lkstyle.css 49 02.12.2010 22:04:00 0.00 POST 0 (None) http://toolbarqueries.clients.google.com/tbproxy/af/query 50 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/logo.jpg 51 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/images/admin.png 52 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/images/letter.png 53 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/images/links/wowhead.gif 54 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/images/tree.gif 55 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/tl.jpg 56 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/tm.jpg 57 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/tr.jpg 58 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/l.jpg 59 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/r.jpg 60 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/bl.jpg 61 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/bm.jpg 62 02.12.2010 22:04:00 0.00 GET 304 293 application/octet-stream http://localhost/ACP/skins/standart/br.jpg Код:
if (isset($_GET['id']) and ($_GET['id'] > 0)) { $k_connect = mysql_connect($k_ip, $k_userdb, $k_pw); mysql_select_db($k_db, $k_connect); mysql_query("SET NAMES '$encoding'"); $res = mysql_query("SELECT * FROM `static` where `id` = ".$_GET['id']." limit 1") or trigger_error(mysql_error()); Последний раз редактировалось Imitator; 02.12.2010 в 22:19. |
||
03.12.2010, 06:52 | #155 | ||
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Цитата:
Цитата:
|
||
03.12.2010, 07:01 | #156 | |
Гость
Сообщений: n/a
|
Цитата:
Код:
1 Правила сервера Правила <p>Главное правило - адекватность.</p> 0 2009-10-13 09:03:52 |
|
03.12.2010, 12:49 | #157 |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
посмотрел: static.php ну ни как не может влиять на регистрацию. Даже если таблица пустая.
Придется сесть и почитать как сейчас на свежих apache и php реализована работа с сессиями. Напишу примочку, которая в корне изменит работу АСР. Сессия будет запускаться всегда и безусловно. А проверка будет осуществляться по наличию необходимых переменных в сессии. Ждите, к понедельнику переделаю. |
Пользователь сказал cпасибо: |
05.12.2010, 20:18 | #159 |
Гость
Сообщений: n/a
|
Прошу прощения, а в репозиториях проекта не произошло никаких изменений ? До текущего момента можно было подключиться и просмотреть при помощи Repo-Browser, а сейчас ни к одному из каталогов без пароля не пускает даже для чтения.
|
05.12.2010, 20:44 | #160 | |
Умный
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
|
Жадные буржуи.... отменили бесплатный тариф для репозитория. Просят $50.
Цитата:
----------------------- Пока вот архив... Подумываю про свой собственный блог. Последний раз редактировалось Кот ДаWINчи; 05.12.2010 в 20:55. |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[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 |