Запуск скрипта на сайте, который копирует все нажатые клавиши, когда страница открыта

позвольте мне кое-что прояснить очень быстро - я не делаю кейлоггер. Я создаю сайт для видеоигры, где пользователи получают предметы за выполнение определенных действий в игре (например, набор текста в чате и т. д.).

Из-за того, как работает эта игра, я считаю, что лучшим способом сделать это было бы иметь веб-сайт, который, будучи открытым, записывал бы все введенное (и сбрасывало пробелы), чтобы увидеть, завершил ли игрок действие. Затем это привело бы их к следующему действию.

Есть ли способ запустить скрипт PHP или JavaScript внутри веб-сайта, который будет записывать все нажатия клавиш, которые набираются, когда страница открыта? Тогда я могу заставить его просто слушать, пока он не прочитает, что игрок выполнил команду (например, присоединение к гильдии или обмен кем-то)?

-Вивиан


person Lauren Hinch    schedule 23.10.2016    source источник
comment
Немного тангенциально, но очень важно: PHP работает на стороне сервера, JS работает на стороне клиента. PHP никогда не запускается на вашем сайте, он используется сервером для генерации ответов на запросы ваших пользователей. Вы можете использовать JS для захвата их нажатий клавиш и, возможно, (в зависимости от вашего приложения) отправлять эти нажатия на ваш сервер для хранения или дополнительной обработки.   -  person The Unknown Dev    schedule 24.10.2016


Ответы (2)


Да, это очень легко сделать с помощью jQuery. После того, как вы подключили библиотеку, вы можете поместить определенные события в элементы. Способ установить событие прослушивателя клавиш, когда пользователь отпускает клавишу, будет примерно таким:

$('body').keypress(function (event) {
    var character = String.fromCharCode(event.charCode)
    alert(character);
});

Затем вы можете отправить результат в php через AJAX (что вы также можете сделать довольно легко в jQuery (поместите это в отдельную функцию и вызовите функцию в вашей функции нажатия клавиши):

var url = 'your_script.php?character=' + character;
$.get(url, function (data) {
    alert(data); // alert response from your_script.php
});
person Manuel Mannhardt    schedule 24.10.2016
comment
Нет веской причины предлагать библиотеку для этого, когда все, что нужно, это один слушатель. Кроме того, event.what является устаревшей функцией, поэтому не рекомендуется ее предлагать. - person RobG; 24.10.2016
comment
Поскольку он также хочет использовать ключ внутри PHP, я думаю, что это хорошая причина для использования jQuery. Зачем ему изобретать велосипед, когда уже есть хорошее решение? Вероятно, он напишет больше кода на JavaScript, вот и все. Также jQuery поддерживает все уже реализованные браузеры. Спасибо за информацию, я изменил свой код. - person Manuel Mannhardt; 24.10.2016
comment
Проблема в том, что существуют < i>много библиотек и фреймворков, которые можно использовать для реализации функциональности, нет смысла говорить 6 ответов с одним и тем же решением, просто с разными библиотеками. Если конкретная библиотека не упоминается, лучше просто показать простое решение JS и позволить OP решить, с какой библиотекой или фреймворком его реализовать. Или покажите как простой JS, так и библиотеку. В этом случае простое JS-решение — это не больше кода, чем библиотека. - person RobG; 24.10.2016
comment
Возможно, вы правы, сэр. Что ж, похоже, что ОП уже все равно, поэтому я оставлю свой ответ для дальнейших поисков. Ваше здоровье - person Manuel Mannhardt; 24.10.2016

Вы можете найти нажатую клавишу с помощью javascript. Если они находятся в поле ввода, у вас может быть функция, которая также проверяет значение поля при нажатии клавиши.

Этот пост здесь отвечает на него.

Как узнать, какая символьная клавиша нажата?

person milkcup    schedule 24.10.2016