- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Сайт на joomla 3.3, менеджер пользователей Community Builder PRO.
Сайт игровой тематики одной из онлайн браузерных игр (клан сайт).
Игроки регистрируются под своими никами, которые используют в игре.
Администрация игры предоставляет возможность проверки ника игрока следующим модулем:
Для клансайтов, на которых игрокам разрешено добавлять новости или оставлять комментарии, полезно проверять чтобы игроки подписывались своим настоящим ником и не выдавали себя за другого. Для этих целей и написан специальный Flash-модуль (600 байт), который позволяет узнать логин игрока, если он сейчас в игре.
В HTML страницы авторизации вставьте следующий код:
<SCRIPT LANGUAGE="JavaScript">
<!--
function tz_DoFSCommand(command, args) {
var tmp = args.split("\t");
if (command == "OK") alert('Login: '+tmp[0]+', SID: '+tmp[1]+', City: '+tmp[2]+
', Level: '+tmp[3]+', Prof: '+tmp[4]+', Clan: '+tmp[5]);
else alert('Authorization error '+tmp[0]);
}
if (navigator.appName.indexOf("Microsoft") != -1) {// Hook for Internet Explorer.
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub tz_FSCommand(ByVal command, ByVal args)\n');
document.write(' Call tz_DoFSCommand(command, args)\n');
document.write('End Sub\n');
document.write('</script\>\n');
}
//-->
</SCRIPT>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="1" height="1" id="tz">
<param name="movie" value="/authorization3.swf" />
<param name="wmode" value="transparent" />
<embed src="/authorization3.swf" wmode="transparent" width="1" height="1"
swLiveConnect="true" id="tz" name="tz" type="application/x-shockwave-flash"
pluginspage="//www.macromedia.com/go/getflashplayer" />
</object>
Флешка определяет параметры залогиненого персонажа в игре и вызывается JavaScript функция tz_DoFSCommand Эта функция может быть вызвана с задержкой в 5 секунд (такой таймаут попыток достучаться до клиента игры).
Функции передается:
command=="ERROR" - персонаж не в игре
command=="OK" - персонаж в игре. В параметре args через табуляцию перечислены параметры персонажа:
логин, уникальный идентификатор сессии, название игрового сервера на котором находится игрок, уровень игрока, номер професии, название клана
Далее ваш скрипт должен проверить эти данные, т.к. читер может сам вызвать эту функцию передав ей все что угодно.
Для проверки вызовите серверный скрипт:
"/cgi-bin/authorization.pl?login="+login+"&ses="+ses+"&city="+city;
Сервер проверит эти данные и в ответе будет или <OK /> если все верно, или <ERROR />.
Пример использования Flash-модуля авторизации можно посмотреть здесь: /authorization3.html
При желании можете создать и свой Flash-модуль, а не использовать готовый. Там все просто, вот исходный текст /authorization3.swf
// Передает браузеру данные о залогиненом клиенте
// Создаем свой уникальный LC куда придет ответ
var rnd = int(Math.random()*1000000000);
var lc = new LocalConnection();
lc.allowDomain = function(name) { return true }
var timeout; // для таймаута
lc.info = function(answer) { // пришел ответ от клиента
// парсим ответ
var my_xml = new XML(answer);
var e = my_xml.firstChild;
if (e.nodeName == 'USER') { // все нормально с ответом
SendAuthorization('OK', e.attributes.login, e.attributes.ses, e.attributes.server,
e.attributes.level || "", e.attributes.pro || "", e.attributes.clan || "");
} else { // в ответе пришла какая-то фигня
SendAuthorization('ERROR', 'Client wrong answer');
}
}
// Поставим таймаут, в течении какого времени ждем ответа от клиента
// секунды более чем достаточно, вообще клиент должен ответить мгновенно,
// задержка только на случай, если комп. в этот момент сильно тормозит
timeout = setInterval(this, "SendAuthorization", 5000, "ERROR", "Timeout");
if (lc.connect("authorization_"+rnd)) { // удалось создать коннект
// запросим инфу про юзера
lc.send("localhost:tz", "authorization3", lc.domain(), "authorization_"+rnd); // если это локальный клиент
lc.send("timezero.ru:tz", "authorization3", lc.domain(), "authorization_"+rnd); // если перс играет через сайт
} else { // что-то странное
SendAuthorization('ERROR', 'Error create connect authorization_'+rnd);
}
// Отсылаем результат авторизации браузеру
function SendAuthorization(cmd, login, ses, city, level, pro, clan) {
clearInterval(timeout); // сбрасываем таймаут
_root.lc.close(); // закрываем коннект
fscommand(cmd, login+"\t"+ses+"\t"+city+"\t"+level+"\t"+pro+"\t"+clan);
}
Вопрос куда вставлять данный скрипт?
И можно ли сделать так что при написании и публикации статьи выводился ник персонажа в поле автор. Игровой ресурс предоставляет вот такую ссылку для загрузки дынных персонажа https://www.timezero.ru/info.pl? - после вопроса можно поставить ник и откроется страница с информацией к примеру (AXILES%20II). А хочется что бы отображался просто ник со всякими бантиками и фантиками около него (значек, професия, ранг).
Подскажите знающие.
Спасибо.