Сейчас: 13:41:23   20-го апреля 2024 г.
UsefulScript.ruСкриптыЗащита сайтаПоказать данные по клику
40
102

Показать скрытые данные по клику мышки

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


Наш способ скрытия нужных данных основан на том, что необходимые данные подгружаются с сервера при помощи jQuery только после клика мышкой по указанному объекту и таким образом они будут недоступны для ботов, не кликнувших по указанному объекту.


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


Номер телефона: +7


Номер телефона: +7 Показать.


Номер телефона: +7


Для полноценной работы предлагаемого нами скрипта скрытия и показа персональных данных Вам потребуется добавить на свой сайт библиотеку jQuery. Если Вы не добавляли ее ранее, то ее следует добавить следующим образом:

JavaScript код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>

Далее Вам понадобиться добавить на свой сайт небольшой JavaScript код, который будет отлавливать клики по указанным элементам и в соответствии от значений их идентификаторов (id) подгружать соответствующие им данные с сервера:

JavaScript код:
<script type="text/javascript">
$(
document).ready(function(){
 $(
".phone>*").click(function(){
    
id_elem = $(this).parent().attr("id");
    
jQuery.post("show_data.php", {id:id_elem}, show_phone);
 });
 function 
show_phone(data){
    $(
"#" id_elem ".phone").fadeOut(500, function(){
        $(
this).html(data).fadeIn(500);
    });
 }
});
</script>

Теперь Вам следует создать в корневой папке Вашего сайта файл с именем show_data.php. Можно конечно создать файл и с другим именем, но тогда в предыдущем скрипте стоит его также исправить на новое. Внутрь созданного файла поместите следующий код:

PHP код:
<?php
$db 
mysqli_connect("localhost","Логин","Пароль","Имя_БД");
$res mysqli_fetch_array(mysqli_query($db,"SELECT data FROM table WHERE id=".(int)$_POST["id"].""));
echo 
$res[0];
?>

Как видите, данный код просто делает запрос к БД для получения из нее нужных данных по id. Таким образом, скрипт в целом по клику обращается к файлу show_data.php и выводит полученные данные пользователю, кликнувшему по указанному объекту на страничке сайта. Вам потребуется указать имя таблицы и столбца, в которых хранятся скрываемые данные вместо table и data соответственно.


Теперь Вам остается добавить на странички кнопки (изображения и т.д.) по клику на которые будут подгружаться защищаемые данные. Делается это так:

HTML код:
<p>
 
Телефон: +7<span class="phone" id="11"><input type="submit" value="Показать"></span>
</
p>
<
p>
 
Телефон: +7<span class="phone" id="22"><u>Показать.</u></span>
</
p>
<
p>
 
Телефон: +7<span class="phone" id="33"><img src="image/show_data.png" alt=""></span>
</
p>

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

Дата создания: 23:03:43 19.07.2014 г.
Посещений: 19121 раз(а).

Комментарии посетителей (11 шт.):
htmaker
8
# 1889
(20:34:09  16.09.2014 г.)

Жесть, что вы тут советуете. Так же всю базу номеров можно стянуть через этот ваш show_data.php
Есть пример где это используется? Я покажу пример, почему нельзя так делать.
Ответить

Administrator
1
# 1890
(22:21:05  16.09.2014 г.)

В начале данной темы говорится, что это простейшая защита от СПАМ ботов, а не от людей, которые будут исследовать исходный код странички и писать соответствующие запросы.
Вы правы, что в таком виде через show_data.php можно легко вытянуть все данные. Правильнее было бы обращаться к БД не по id, а, например, по общему MD5 хешу id, имени и номера телефона одной строкой, который предварительно надо высчитать и поместить в БД. Таким образом, мы избавимся от перебора всей базы по id, а при частых неправильных запросах можем блокировать неугодные IP.
Ответить

Алексей
0
# 2074
(12:42:05  29.11.2014 г.)

Поясните, как добавить имя таблицы и столбца, в которых хранятся скрываемые данные вместо table и data соответственно. Заранее благодарен.
Ответить

Administrator
0
# 2077
(17:35:03  29.11.2014 г.)

У Вас должна быть БД, в которой хранятся данные. Вот оттуда и необходимо взять имя таблицы и столбца. Дальнейшее обсуждение возникшей проблемы перенес на наш форум, но Вы можете продолжать писать в комментарии, Ваши комментарии буду перенесены на форум.
Ответить

Евгений
0
# 2178
(20:46:14  10.01.2015 г.)

А как заполнить show_data.php, на случай если номеров не более пяти и нет смысла в БД?
Ответить

Administrator
2
# 2179
(21:41:22  10.01.2015 г.)

Можно, например, при помощи конструкции switch-case:
<?php
switch ((int)$_POST["id"]){
case 1: echo "111-22-33"; break;
case 2: echo "111-22-44"; break;
case 3: echo "111-22-55"; break;
case 4: echo "111-22-66"; break;
} ?>
Ответить

Геннадий
1
# 2243
(01:12:06  03.02.2015 г.)

А можно сделать похожую вещицу, но только если клик будет происходить по любому участку экрана?
И так чтобы после клика, на страницу в браузер подгружалась бы обычная строка из файла или какой-нибудь скрипт.
Ответить

Андрей
0
# 3254
(13:45:32  02.06.2016 г.)

Можно попробовать сделать кнопку на весь размер сайта бесцветную.
Ответить

Allaur
0
# 3597
(01:33:14  30.11.2016 г.)

А как сделать тоже самое, но не выводить данные из базы, а просто показать\скрыть номер телефона?
Ответить

Administrator
0
# 3600
(20:29:08  30.11.2016 г.)

Для этого прекрасно подойдет один из имеющихся у нас скриптов спойлера.
Ответить

Дмитрий
0
# 3970
(18:13:26  28.06.2017 г.)

А можно просто сделать в модульном окне.
Ответить

Закрыть
Ваше имя:
330 + 8 =
Добавить комментарий:
Ваше имя:
330 + 8 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 10

Какие темы необходимо добавлять на сайт?