Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > WWW

Важная информация

WWW Web интерфейс для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.06.2010, 12:11   #1
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию MaNGOS баг-трекер (разработка)

Хотелось бы сделать удобный баг-трекер, которым можно было бы пользоваться и даже в общих целях, не только на определённом сервере, а, например, даже на официальном форуме базы/ядра
К сожалению, не располагаю необходимыми знаниями, чтобы начать.
НУЖНО: -) реализовать вход под аккаунтом и оправку баг-репорта (для начала - аккаунт просто из realmd базы)
Далее функционал я могу бы постараться сделать сам.
Набросал шаблоны:


Смысл: удобное управление и отслеживание баг-репортов. Ни один из существующих баг-трекеров удобным, простым и достаточно функциональным назвать нельзя...
+ поиск объекта баг-репорта по базе мангоса, возможно ссылка на него на офф сайт (ВХ, к примеру) или на сайт БД сервера, которая автоматом вставляется в баг-репорт, что даёт администратору сразу наиболее полную информацию и облегчает анализ баг-репорта.
Основная проблема: не знаю как реализовать вход на сайт и правильно разбить структуру сайта (css). С реализацией функционала, я думаю, я справится смогу...
KiriX вне форума   Ответить с цитированием
Старый 11.06.2010, 12:27   #2
BombermaG
Модератор
 
Аватар для BombermaG
 
Регистрация: 07.03.2010
Сообщений: 57
Сказал(а) спасибо: 5
Поблагодарили 13 раз(а) в 8 сообщениях
BombermaG На верном пути
По умолчанию

Так был же: MaNPOT [баг-трекер для серверов на MaNGOS]

Последний раз редактировалось BombermaG; 11.06.2010 в 12:52.
BombermaG вне форума   Ответить с цитированием
Старый 11.06.2010, 12:53   #3
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от BombermaG Посмотреть сообщение
Он и сейчас есть в данном разделе уже на новом форуме, но:
Не попадает по пунктам:
Цитата:
Смысл: удобное управление и отслеживание баг-репортов. Ни один из существующих баг-трекеров удобным, простым и достаточно функциональным назвать нельзя...
+ поиск объекта баг-репорта по базе мангоса, возможно ссылка на него на офф сайт (ВХ, к примеру) или на сайт БД сервера, которая автоматом вставляется в баг-репорт, что даёт администратору сразу наиболее полную информацию и облегчает анализ баг-репорта.
KiriX вне форума   Ответить с цитированием
Старый 11.06.2010, 12:54   #4
BombermaG
Модератор
 
Аватар для BombermaG
 
Регистрация: 07.03.2010
Сообщений: 57
Сказал(а) спасибо: 5
Поблагодарили 13 раз(а) в 8 сообщениях
BombermaG На верном пути
По умолчанию

Дык не велосипед же изобретать, проще допилить, не так ли?
BombermaG вне форума   Ответить с цитированием
Старый 11.06.2010, 13:13   #5
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от BombermaG Посмотреть сообщение
Дык не велосипед же изобретать, проще допилить, не так ли?
Допилить можно бревно, а вот пытаться сделать из кровати шкаф - сложнее - лучше с нуля шкаф начать делать...
Неудобен он, его не допиливать, а переделывать надо, что сложнее, если дело касается чужого кода.
К тому же я уже написал - мне требуется довольно небольшая помощь - входи и отправка сообщения в базу - дальше смогу сам.
KiriX вне форума   Ответить с цитированием
Старый 11.06.2010, 16:13   #6
ghostpast
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
ghostpast На верном пути
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
НУЖНО: -) реализовать вход под аккаунтом и оправку баг-репорта (для начала - аккаунт просто из realmd базы)
Этот функционал реализовать в одном файле или в виде модулей?
Если в виде модулей, то у меня есть некоторые наработки.
Хотелось бы увидеть шаблоны входа и отправки баг-репорта.
ghostpast вне форума   Ответить с цитированием
Старый 11.06.2010, 19:07   #7
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Стукнул в ЛС, есть несколько вопросов по теме.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 11.06.2010, 19:28   #8
srv38
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
srv38 На верном пути
По умолчанию

Когда то делал авторизацию проекта через воблу, вот выдрал вроде кусок

Код:
$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'];
я думаю поймете идею .
srv38 вне форума   Ответить с цитированием
Старый 11.06.2010, 23:04   #9
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от ghostpast Посмотреть сообщение
Этот функционал реализовать в одном файле или в виде модулей?
Если в виде модулей, то у меня есть некоторые наработки.
Хотелось бы увидеть шаблоны входа и отправки баг-репорта.
Цитата:
Сообщение от Hantet Посмотреть сообщение
Стукнул в ЛС, есть несколько вопросов по теме.
Цитата:
Сообщение от srv38 Посмотреть сообщение
Когда то делал авторизацию проекта через воблу, вот выдрал вроде кусок

Код:
$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'];
я думаю поймете идею .
1) Модули? Что вы имеете ввиду под этим термином? Естественно, это будет не один файл - index.php, bug.php, edit.php Шаблоны и так предоставил...
2) Вопросов не заметил, а так вообще ответил
3) Код, хорошо, но мне бы готовый продукт - дальше сам....
KiriX вне форума   Ответить с цитированием
Старый 11.06.2010, 23:42   #10
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Багтрекер, которым мы несколько лет назад по работе активно пользовались. В какой-то момент решил посмотреть версию посвежее, но сайт автора был сдохшим. Поискал автора по своим каналам - никакого эффекта.
Короче - скрипт изначально бесплатный, автора найти не удавалось, так что получается, что можно пользоваться открыто.

Если вдруг найдется автор - будет хорошо.


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







PS
Кстати, раз уж разговор зашел... Может тут на субдомене поднять этот баг-трекер? Что-то типа bug.ru-mangos.ru или tracker.ru-mangos.ru - и писать там... кстати, я даже не знаю что там писать.
Я к чему - возможность есть, и если Администрация Форума решит что оно надо - сделать несложно. Опять же - РНР программеров у нас своих вагон (и маленькая тележка), и если там что-то дописать понадобится - не проблема же будет.
Вложения
Тип файла: rar bugtracker-b-flat-1.3.rar (146.3 Кб, 532 просмотров)
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 12.06.2010, 06:32   #11
srv38
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
srv38 На верном пути
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
3) Код, хорошо, но мне бы готовый продукт - дальше сам....
Ну я там доску объявлений делал, на баг трекер она ну никак не похожа , я просто кинул кусок кода который дает возможность посмотреть класс зарегистрированного пользователя форума "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
     {
        пользователь не зареган то ридерект на станицу авторизации форума
     }
srv38 вне форума   Ответить с цитированием
Старый 12.06.2010, 08:47   #12
ghostpast
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
ghostpast На верном пути
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
1) Модули? Что вы имеете ввиду под этим термином? Естественно, это будет не один файл - index.php, bug.php, edit.php Шаблоны и так предоставил...
Функционально законченный фрагмент программы как часть её исходного текста.

В предоставленных шаблонах не видно формы отправки баг-репорта. Как только ее покажете, добавлю соответствующий модуль.

Для изменения оформления достаточно отредактировать файлы html из папки style.
Настройки соединения с БД в файле ConnectDB.xml.
В БД необходимо выполнить все запросы из папки SQL.
Вложения
Тип файла: rar Bug Tracker.rar (306.3 Кб, 572 просмотров)
ghostpast вне форума   Ответить с цитированием
Старый 12.06.2010, 12:19   #13
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от ghostpast Посмотреть сообщение
Функционально законченный фрагмент программы как часть её исходного текста.

В предоставленных шаблонах не видно формы отправки баг-репорта. Как только ее покажете, добавлю соответствующий модуль.

Для изменения оформления достаточно отредактировать файлы html из папки style.
Настройки соединения с БД в файле ConnectDB.xml.
В БД необходимо выполнить все запросы из папки SQL.
Симпатичный дизайн, авторизация не работает, да и как-то странно она сделана... Для неё надо вливать в БД процедуру зачем-то...
3 шаблон добавлен в первый пост.
Темпура, твой вариант вообще запустить у меня не удалось...
По поводу субдомена баг-трекера - хорошая идея, создавая тему с таким ТЗ я на это и расчитывал, был бы только удобен баг-трекер и полностью подходил бы для мангоса, что я и хочу реализовать в конечном итоге...
KiriX вне форума   Ответить с цитированием
Старый 12.06.2010, 13:40   #14
ghostpast
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
ghostpast На верном пути
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Симпатичный дизайн, авторизация не работает, да и как-то странно она сделана... Для неё надо вливать в БД процедуру зачем-то...
3 шаблон добавлен в первый пост.
Темпура, твой вариант вообще запустить у меня не удалось...
По поводу субдомена баг-трекера - хорошая идея, создавая тему с таким ТЗ я на это и расчитывал, был бы только удобен баг-трекер и полностью подходил бы для мангоса, что я и хочу реализовать в конечном итоге...
Какую ошибку выводит скрипт при авторизации?
При написании скрипта я решил отделить SQL от PHP, передавая в БД только параметры запросов. Хранимая процедура в БД выполняется быстрее, чем запрос из PHP, поскольку она хранится в откомпилированном виде.
При поиске надо выбирать предмет, ГО или квест или их все надо вводить?
ghostpast вне форума   Ответить с цитированием
Старый 12.06.2010, 14:48   #15
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Strict Standards - укажите те функции как статик, т.е. public static function CheckPassword()
LordJZ вне форума   Ответить с цитированием
Старый 12.06.2010, 15:01   #16
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Код:
Fatal error: Class 'PDO' not found in D:\SITE\localhost\www\bug\index.php on line 18
мускл не подключен - забавно. А бы тоже не допер навскидку, если бы не знал что такое PDO.

Цитата:
Сообщение от ghostpast Посмотреть сообщение
Какая версия PHP?
Строка "extension=php_pdo_mysql.dll" раскомментирована в php.ini?
А с чего бы это вообще решили использовать PDO? Какие-то преимущества? Все-таки не на каждом углу (хостинге) их подключают по дефолту.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 12.06.2010, 15:46   #17
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Если нужна авторизация под аккаунтом в игре, то это определяется одним запросом.
У себя уже давно написал мини-раздел, куда и поступают баг-репорты.

Игроки логинятся под своими аккаунтами и создают баг-репорты в соответствубщих разделах, а я уже смотрю, какой аккаунт, какая раса и какой класс.

Если делать авторизацию независимо от базы, то можно взять с любого форума.
virusav вне форума   Ответить с цитированием
Старый 12.06.2010, 16:26   #18
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
Если делать авторизацию независимо от базы, то можно взять с любого форума.
Главное - чтобы скрипт простой был. Чтобы ту самую "независимую авторизацию" можно было легко привязать к базе аккаунтов.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (12.06.2010)
Старый 12.06.2010, 19:59   #19
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Нотис так и остался:
Код:
Notice: Undefined index: do in D:\SITE\localhost\www\bug\index.php  on line 42
Модуль в пхп подключил, проверю позже...
KiriX вне форума   Ответить с цитированием
Старый 14.06.2010, 18:50   #20
Madmunus
Это просто он
 
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
Madmunus На верном пути
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Нотис так и остался:
Код:
Notice: Undefined index: do in D:\SITE\localhost\www\bug\index.php  on line 42
Модуль в пхп подключил, проверю позже...
После
PHP код:
if (empty($_SESSION)) $_SESSION null
добавьте строку
PHP код:
$do = (isset($_GET***91;'do'***93;)) ?$_GET***91;'do'***93; :null
и замените строку
PHP код:
switch ($_GET***91;'do'***93;): 
на
PHP код:
switch ($do): 
с 39 по 42:
PHP код:
 if (empty($_POST)) $_POST null;
 if (empty(
$_SESSION)) $_SESSION null;
 
$do = (isset($_GET***91;'do'***93;)) ?$_GET***91;'do'***93; :null;
 switch (
$do): 

Последний раз редактировалось Madmunus; 14.06.2010 в 18:57.
Madmunus вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (15.06.2010)
Старый 16.06.2010, 12:38   #21
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Хорошо... А можно простейшую форму входа. Без всякого оформления - требуется просто вход по данным из базы realmd?
KiriX вне форума   Ответить с цитированием
Старый 16.06.2010, 13:08   #22
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Уже кидал:

Код:
<?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: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (16.06.2010)
Старый 16.06.2010, 13:29   #23
Madmunus
Это просто он
 
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
Madmunus На верном пути
По умолчанию

Лучше использовать DBSimple так как такой простой логин взломать 5 секунд, что не есть хорошо.
Madmunus вне форума   Ответить с цитированием
Старый 16.06.2010, 14:09   #24
Shadez
Ученый
 
Аватар для Shadez
 
Регистрация: 07.03.2010
Сообщений: 175
Сказал(а) спасибо: 64
Поблагодарили 142 раз(а) в 45 сообщениях
Shadez Обладатель прекрасной аурыShadez Обладатель прекрасной ауры
Отправить сообщение для Shadez с помощью ICQ
По умолчанию

Цитата:
Сообщение от Madmunus Посмотреть сообщение
Лучше использовать DBSimple
А ещё лучше юзать addslashes или аналогичные функции :-)
Shadez вне форума   Ответить с цитированием
Старый 16.06.2010, 14:52   #25
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Shadez Посмотреть сообщение
А ещё лучше юзать addslashes или аналогичные функции :-)
И получите раскрытие путей
LordJZ вне форума   Ответить с цитированием
Старый 16.06.2010, 18:13   #26
Madmunus
Это просто он
 
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
Madmunus На верном пути
По умолчанию

Цитата:
Сообщение от Shadez Посмотреть сообщение
А ещё лучше юзать addslashes или аналогичные функции :-)
escape'ом надо пользоваться тогда уж...)))
Madmunus вне форума   Ответить с цитированием
Старый 24.09.2010, 20:30   #27
Fer0x
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Madmunus Посмотреть сообщение
escape'ом надо пользоваться тогда уж...)))
escape не панацея.
  Ответить с цитированием
Старый 25.09.2010, 05:10   #28
Праведник
Пользователь
 
Регистрация: 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']);
 }
При использовании проверяем ещё и наличие такового хеша в базе. Для ещё больших фанатиков можно предложить контролить изменение IP адреса + какого-нибудь случайного "довеска" к нему. Но на самом деле, на фоне того, что сессии подделать/украсть невозможно, всё это как-то даже не смотрится...

p.s. Само собой все введённые данные (логин и пароль) должны дополнительно проверяться на валидность с помощью регулярных выражений.

Последний раз редактировалось Konctantin; 25.10.2010 в 12:07.
Праведник вне форума   Ответить с цитированием
Старый 25.09.2010, 16:27   #29
Fer0x
Гость
 
Сообщений: n/a
По умолчанию

preg_match("/^\w*$/", $username.$password)

Последний раз редактировалось Fer0x; 25.09.2010 в 16:30.
  Ответить с цитированием
Старый 25.10.2010, 10:22   #30
deadangel
Новичок
 
Аватар для deadangel
 
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
deadangel На верном пути
Отправить сообщение для deadangel с помощью ICQ Отправить сообщение для deadangel с помощью Skype™
По умолчанию

подскажите народ, откуда брать ZoneId и MapId, на примере Creature

Нужно ли парсить DBC и если да, то какие именно?

Последний раз редактировалось deadangel; 25.10.2010 в 10:39.
deadangel вне форума   Ответить с цитированием
Старый 25.10.2010, 10:50   #31
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Map.dbc
AreaTable.dbc
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
deadangel (25.10.2010)
Старый 26.10.2010, 11:59   #32
deadangel
Новичок
 
Аватар для deadangel
 
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
deadangel На верном пути
Отправить сообщение для deadangel с помощью ICQ Отправить сообщение для deadangel с помощью Skype™
По умолчанию

Спарсить DBC я то спарсил. А есть описание полей этих самых DBC. Например в Map.dbc 36 полей. Есть у них названия и описания для чего они служат?
deadangel вне форума   Ответить с цитированием
Старый 26.10.2010, 12:45   #33
Lightunit
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
Lightunit На верном пути
По умолчанию

_http://www.madx.dk/wowdev/wiki/index.php?title=DBC
Lightunit вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
deadangel (26.10.2010)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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


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


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot