Как сделать чтобы по нажатии клавиш ctrl + u в пхп срабатывал код, который записывал в .htaccess айпи клиента, нажавшего эту кнопку?
Писать в .htaccess ip адреса честно не очень удобно, лучше их заносить в бд, а потом сверять их вот пример кода надеюсь он вам будет полезен 1. Сначало нужно создать таблицу в бд
CREATE TABLE `ip_block` (
`id` INT(2) NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(250) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`id`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
2. Сделать подключение к базе данных для этого мы будем использовать обёртку PDO пример файла db.php
<?php
$host = 'localhost';
$db = 'ваша бд';
$user = 'имя пользователя';
$pass = 'ваш пароль';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
<?php
require_once 'db.php';
$ip = $_SERVER["REMOTE_ADDR"];
$stmt = $pdo->prepare("SELECT COUNT(ip) as ip FROM ip_block WHERE ip=:ip");
$stmt->bindParam(':ip', $ip);
$stmt->execute();
$block = $stmt->fetch();
if($block["ip"] > 0){
header('Location: /test/ban.php');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Пользователь ещё не нажал CTRL+U</h1>
</body>
</html>
<script>
var message="Правая кнопка мыши отключена!";
function click(e) {
if (document.all) { // IE
if (event.button == 2) { // Чтобы отключить левую кнопку поставьте цифру 1
alert(message); // чтобы отключить среднюю кнопку поставьте цифру 1
return false;}
}
if (document.layers) { // NC
if (e.which == 3) {
alert(message);
return false;}
}
}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);}
document.onmousedown=click;
document.oncontextmenu=function(e){return false};
document.mousedown=function(e){ if(event.which == 3)
{
alert();
}
}
let isCtrl = false;
document.onkeyup=function(e){ if(e.which == 17) isCtrl=false; }
document.onkeydown=function(e) {
if(e.which == 17) isCtrl=true;
if(e.which == 85 && isCtrl === true) {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'check.php', false);
xhr.send();
if (xhr.status != 200) {
alert( 'что-то не работает' );
} else {
location.reload();
}
let b = 1;
for (var i = 0; i < b; i++) {
alert();
b++;
}
}
}
</script>
</body>
</html>
</script>
require_once 'db.php';
$ip = $_SERVER["REMOTE_ADDR"];
$stmt = $pdo->prepare("SELECT COUNT(ip) as ip FROM ip_block WHERE ip=:ip");
$stmt->bindParam(':ip', $ip);
$stmt->execute();
$block = $stmt->fetch();
if($block["ip"] > 0){
header('Location: /test/ban.php');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Пользователь ещё не нажал CTRL+U</h1>
</body>
</html>
<script>
var message="Правая кнопка мыши отключена!";
function click(e) {
if (document.all) { // IE
if (event.button == 2) { // Чтобы отключить левую кнопку поставьте цифру 1
alert(message); // чтобы отключить среднюю кнопку поставьте цифру 1
return false;}
}
if (document.layers) { // NC
if (e.which == 3) {
alert(message);
return false;}
}
}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);}
document.onmousedown=click;
document.oncontextmenu=function(e){return false};
document.mousedown=function(e){ if(event.which == 3)
{
alert();
}
}
let isCtrl = false;
document.onkeyup=function(e){ if(e.which == 17) isCtrl=false; }
document.onkeydown=function(e) {
if(e.which == 17) isCtrl=true;
if(e.which == 85 && isCtrl === true) {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'check.php', false);
xhr.send();
if (xhr.status != 200) {
alert( 'что-то не работает' );
} else {
location.reload();
}
let b = 1;
for (var i = 0; i < b; i++) {
alert();
b++;
}
}
}
</script>
</body>
</html>
</script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Умник ты забанен</h1>
</body>
</html>
скачать zip архив https://drive.google.com/open?id=1WIRJsJF6YPi6IvV_HtreHFaxSp9BHoYL
посмотреть видео https://youtu.be/5oKPTEXL2oU
Введение в браузерные события - https://learn.javascript.ru/introduction-browser-events
Виртуальные коды клавиш для javascript (event.keyCode) - http://umi-cms.spb.su/ref/javascript/251/
Объекты данных PHP PDO - http://php.net/manual/ru/book.pdo.php#book.pdo
Как работать с PDO? Полное руководство(очень полезно) - http://phpfaq.ru/pdo
Информация о сервере и среде исполнения - http://php.net/manual/ru/reserved.variables.server.php
Основы XMLHttpRequest - https://learn.javascript.ru/ajax-xmlhttprequest
Цикл (программирование) - https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем доброго времени сутокКогда пытаюсь вызвать функцию FROM_BASE64 в запросе, то выдает ошибку с текстом "#1305 - FUNCTION myDB
Заранее прошу прощения за ошибкиМне необходимо реализовать авторизацию Вконтакте
Нужно с генерировать csrf токен для POST запроса ,