|
WWW Web интерфейс для MaNGOS |
|
Опции темы | Поиск в этой теме | Опции просмотра |
11.06.2010, 12:11 | #1 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
MaNGOS баг-трекер (разработка)
Хотелось бы сделать удобный баг-трекер, которым можно было бы пользоваться и даже в общих целях, не только на определённом сервере, а, например, даже на официальном форуме базы/ядра
К сожалению, не располагаю необходимыми знаниями, чтобы начать. НУЖНО: -) реализовать вход под аккаунтом и оправку баг-репорта (для начала - аккаунт просто из realmd базы) Далее функционал я могу бы постараться сделать сам. Набросал шаблоны: Смысл: удобное управление и отслеживание баг-репортов. Ни один из существующих баг-трекеров удобным, простым и достаточно функциональным назвать нельзя... + поиск объекта баг-репорта по базе мангоса, возможно ссылка на него на офф сайт (ВХ, к примеру) или на сайт БД сервера, которая автоматом вставляется в баг-репорт, что даёт администратору сразу наиболее полную информацию и облегчает анализ баг-репорта. Основная проблема: не знаю как реализовать вход на сайт и правильно разбить структуру сайта (css). С реализацией функционала, я думаю, я справится смогу... |
11.06.2010, 12:27 | #2 |
Модератор
Регистрация: 07.03.2010
Сообщений: 57
Сказал(а) спасибо: 5
Поблагодарили 13 раз(а) в 8 сообщениях
|
Так был же: MaNPOT [баг-трекер для серверов на MaNGOS]
Последний раз редактировалось BombermaG; 11.06.2010 в 12:52. |
11.06.2010, 12:53 | #3 | ||
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Не попадает по пунктам: Цитата:
|
||
11.06.2010, 12:54 | #4 |
Модератор
Регистрация: 07.03.2010
Сообщений: 57
Сказал(а) спасибо: 5
Поблагодарили 13 раз(а) в 8 сообщениях
|
Дык не велосипед же изобретать, проще допилить, не так ли?
|
11.06.2010, 13:13 | #5 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Допилить можно бревно, а вот пытаться сделать из кровати шкаф - сложнее - лучше с нуля шкаф начать делать...
Неудобен он, его не допиливать, а переделывать надо, что сложнее, если дело касается чужого кода. К тому же я уже написал - мне требуется довольно небольшая помощь - входи и отправка сообщения в базу - дальше смогу сам. |
11.06.2010, 16:13 | #6 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
Если в виде модулей, то у меня есть некоторые наработки. Хотелось бы увидеть шаблоны входа и отправки баг-репорта. |
|
11.06.2010, 19:07 | #7 |
Ученый
|
Стукнул в ЛС, есть несколько вопросов по теме.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет |
11.06.2010, 19:28 | #8 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
|
Когда то делал авторизацию проекта через воблу, вот выдрал вроде кусок
Код:
$CONFIG['forum_dir'] = "C:/Program Files/xampp/htdocs/forum"; //Путь к форуму на диске $curDir = dirname(__FILE__); chdir($CONFIG['forum_dir']); require_once($CONFIG['forum_dir'].'/global.php'); chdir($curDir); //print_r($vbulletin->userinfo); $f_userid = $vbulletin->userinfo['userid']; $f_username = $vbulletin->userinfo['username']; $f_email = $vbulletin->userinfo['email']; $f_logouthash = $vbulletin->userinfo['logouthash']; $f_homepage = $vbulletin->userinfo['homepage']; |
11.06.2010, 23:04 | #9 | ||
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Цитата:
2) Вопросов не заметил, а так вообще ответил 3) Код, хорошо, но мне бы готовый продукт - дальше сам.... |
||
11.06.2010, 23:42 | #10 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Багтрекер, которым мы несколько лет назад по работе активно пользовались. В какой-то момент решил посмотреть версию посвежее, но сайт автора был сдохшим. Поискал автора по своим каналам - никакого эффекта.
Короче - скрипт изначально бесплатный, автора найти не удавалось, так что получается, что можно пользоваться открыто. Если вдруг найдется автор - будет хорошо. Главное преимущество - простота и легкость. И заточить под любой интерфейс должно быть (по воспоминаниям) несложно. PS Кстати, раз уж разговор зашел... Может тут на субдомене поднять этот баг-трекер? Что-то типа bug.ru-mangos.ru или tracker.ru-mangos.ru - и писать там... кстати, я даже не знаю что там писать. Я к чему - возможность есть, и если Администрация Форума решит что оно надо - сделать несложно. Опять же - РНР программеров у нас своих вагон (и маленькая тележка), и если там что-то дописать понадобится - не проблема же будет.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
12.06.2010, 06:32 | #11 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
|
Ну я там доску объявлений делал, на баг трекер она ну никак не похожа , я просто кинул кусок кода который дает возможность посмотреть класс зарегистрированного пользователя форума "vBulletin",
допустим Код:
$CONFIG['forum_dir'] = "C:/Program Files/xampp/htdocs/forum"; //Путь к форуму на диске $curDir = dirname(__FILE__); chdir($CONFIG['forum_dir']); require_once($CONFIG['forum_dir'].'/global.php'); chdir($curDir); $isUser = vbforum::isUser(); if ($isUser) { пользователь зареган и все так сказать его атрибуты можно глянуть так print_r($vbulletin->userinfo); и выбрать нужные $f_userid = $vbulletin->userinfo['userid']; $f_username = $vbulletin->userinfo['username']; $f_email = $vbulletin->userinfo['email']; $f_logouthash = $vbulletin->userinfo['logouthash']; $f_homepage = $vbulletin->userinfo['homepage']; } else { пользователь не зареган то ридерект на станицу авторизации форума } |
12.06.2010, 08:47 | #12 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
В предоставленных шаблонах не видно формы отправки баг-репорта. Как только ее покажете, добавлю соответствующий модуль. Для изменения оформления достаточно отредактировать файлы html из папки style. Настройки соединения с БД в файле ConnectDB.xml. В БД необходимо выполнить все запросы из папки SQL. |
|
12.06.2010, 12:19 | #13 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
3 шаблон добавлен в первый пост. Темпура, твой вариант вообще запустить у меня не удалось... По поводу субдомена баг-трекера - хорошая идея, создавая тему с таким ТЗ я на это и расчитывал, был бы только удобен баг-трекер и полностью подходил бы для мангоса, что я и хочу реализовать в конечном итоге... |
|
12.06.2010, 13:40 | #14 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
При написании скрипта я решил отделить SQL от PHP, передавая в БД только параметры запросов. Хранимая процедура в БД выполняется быстрее, чем запрос из PHP, поскольку она хранится в откомпилированном виде. При поиске надо выбирать предмет, ГО или квест или их все надо вводить? |
|
12.06.2010, 14:10 | #15 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Из ошибок, тотисов и варнингов: Код:
Notice: Undefined index: do in D:\SITE\localhost\www\bug\index.php on line 42 При логине: Strict Standards: Non-static method authorization::Main() should not be called statically in D:\SITE\localhost\www\bug\index.php on line 51 Strict Standards: Non-static method authorization::CheckPassword() should not be called statically in D:\SITE\localhost\www\bug\modules\authorization.php on line 36 Strict Standards: Non-static method authorization::GetAccountData() should not be called statically in D:\SITE\localhost\www\bug\modules\authorization.php on line 19 Fatal error: Class 'PDO' not found in D:\SITE\localhost\www\bug\index.php on line 18 |
|
12.06.2010, 14:42 | #16 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
Строка "extension=php_pdo_mysql.dll" раскомментирована в php.ini? В modules/authorization.php в строке 40 должно быть PHP код:
|
|
12.06.2010, 14:48 | #17 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Strict Standards - укажите те функции как статик, т.е. public static function CheckPassword()
|
12.06.2010, 15:01 | #18 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Цитата:
А с чего бы это вообще решили использовать PDO? Какие-то преимущества? Все-таки не на каждом углу (хостинге) их подключают по дефолту.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
12.06.2010, 15:46 | #19 |
Администратор
|
Если нужна авторизация под аккаунтом в игре, то это определяется одним запросом.
У себя уже давно написал мини-раздел, куда и поступают баг-репорты. Игроки логинятся под своими аккаунтами и создают баг-репорты в соответствубщих разделах, а я уже смотрю, какой аккаунт, какая раса и какой класс. Если делать авторизацию независимо от базы, то можно взять с любого форума. |
12.06.2010, 16:26 | #20 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Главное - чтобы скрипт простой был. Чтобы ту самую "независимую авторизацию" можно было легко привязать к базе аккаунтов.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
Пользователь сказал cпасибо: | KiriX (12.06.2010) |
12.06.2010, 19:59 | #21 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Нотис так и остался:
Код:
Notice: Undefined index: do in D:\SITE\localhost\www\bug\index.php on line 42 |
14.06.2010, 18:50 | #22 | |
Это просто он
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
|
Цитата:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
Последний раз редактировалось Madmunus; 14.06.2010 в 18:57. |
|
Пользователь сказал cпасибо: | KiriX (15.06.2010) |
16.06.2010, 13:08 | #24 |
Ученый
|
Уже кидал:
Код:
<?php $dbhost = "localhost"; $dbuser = "mangos"; $dbpass = "mangos"; $realmd = "realmd"; echo ' <form name="login" method="post" action="index.php"> <input type="text" name="log" value="Логин"> <input type="text" name="pass" value="Пароль"> <input type="submit" value="Вход"> </form>'; if(!empty($_POST['log']) && !empty($_POST['pass'])) { $log = (isset($_POST['log'])) ? $_POST['log'] : null; $pass = (isset($_POST['pass'])) ? $_POST['pass'] : null; mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($realmd); $fetch = mysql_fetch_array(mysql_query("SELECT * FROM `account` WHERE `name` = '".$log."' AND `sha_pass_hash` = SHA1(UPPER('".$log.":".$pass."'))")); if($fetch['id'] > 0) { echo "Hello, ".$fetch['name']."!<br>"; echo "Your e-mail: ".$fetch['email']; } else echo "Login failed!"; } ?>
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет |
Пользователь сказал cпасибо: | KiriX (16.06.2010) |
16.06.2010, 13:29 | #25 |
Это просто он
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
|
Лучше использовать DBSimple так как такой простой логин взломать 5 секунд, что не есть хорошо.
|
16.06.2010, 14:09 | #26 |
Ученый
|
|
16.06.2010, 14:52 | #27 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
16.06.2010, 18:13 | #28 |
Это просто он
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
|
|
24.09.2010, 20:30 | #29 |
Гость
Сообщений: n/a
|
|
25.09.2010, 05:10 | #30 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Всегда при держивался логики: всё гениальное, просто.
К данной пословице частично подходит авторизация, которую сделал Кот Да Винчи в своём личном кабинете. Изначально выглядит так: Код:
if (isset($_POST['auth_name'])) { $par= SHA1(strtoupper($_POST['auth_name']).':'.strtoupper($_POST['auth_pass'])); $cont = mysql_connect($r_ip, $r_userdb, $r_pw); mysql_select_db($r_db, $cont); mysql_query("SET NAMES '$encoding'"); $res = mysql_query('SELECT * FROM `account` WHERE `username`="'.strtoupper(addslashes($_POST['auth_name'])).'" AND sha_pass_hash ="'.$par.'"'); if ($row = mysql_fetch_assoc($res)) { session_start(); $_SESSION['user_id'] = (int)$row['id']; $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['kito'] = strtoupper($_POST['auth_name']); $_SESSION['slovo'] = strtoupper($par); $_SESSION['gnom'] = (int)$row['gmlevel']; $_SESSION['modul'] = 'news'; $_SESSION['acpskin'] = $acpskin; } header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); exit; } Ну особые параноики (я сам оказался таковым ) могут добавить ещё некий хеш (допустим, добавим к таблице account поле hash) + DBSimple и получим такой вариант: Код:
session_start(); if( isset( $_POST['accountName'] )) { $passw = SHA1(strtoupper(trim($_POST['accountName'])).':'.strtoupper(trim($_POST['password']))); $name = strtoupper(trim($_POST['accountName'])); $member_check = $realmd->selectRow('SELECT `id`, `gmlevel` FROM `account` WHERE `username` = ? AND sha_pass_hash= ?', $name, $passw); if ($member_check['id']) { $_SESSION['user_id'] = $member_check['id']; $_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['gmlevel'] = $member_check['gmlevel']; $_SESSION['template'] = $config['templates']; $_SESSION['hash'] = md5($member_check['id'].'_'.$_SERVER['REMOTE_ADDR'].date('d.m', time())); $realmd->query('UPDATE `account` set `hash` = ? WHERE `id`= ?', $_SESSION['hash'], $member_check['id']); } header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); } p.s. Само собой все введённые данные (логин и пароль) должны дополнительно проверяться на валидность с помощью регулярных выражений. Последний раз редактировалось Konctantin; 25.10.2010 в 12:07. |
25.09.2010, 16:27 | #31 |
Гость
Сообщений: n/a
|
preg_match("/^\w*$/", $username.$password)
Последний раз редактировалось Fer0x; 25.09.2010 в 16:30. |
25.10.2010, 10:22 | #32 |
Новичок
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
|
подскажите народ, откуда брать ZoneId и MapId, на примере Creature
Нужно ли парсить DBC и если да, то какие именно? Последний раз редактировалось deadangel; 25.10.2010 в 10:39. |
26.10.2010, 11:59 | #34 |
Новичок
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
|
Спарсить DBC я то спарсил. А есть описание полей этих самых DBC. Например в Map.dbc 36 полей. Есть у них названия и описания для чего они служат?
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MaNGOS под Cataclysm (разработка) | KiriX | Корзина | 578 | 19.02.2013 18:38 |
[Mod] Anti-Farming (разработка) | Hantet | Запросы | 37 | 08.09.2010 08:57 |
[git] Командная разработка | Hantet | Новичкам | 3 | 06.07.2010 09:01 |
Глобальный FAQ (разработка) | Konctantin | Новичкам | 6 | 14.03.2010 10:46 |
MaNPOT [баг-трекер для MaNGOS] | DeusModus | WWW | 0 | 07.03.2010 21:36 |