Перейти к содержимому
Русский язык для Invision Community 5

JavaScript не дружит с IPB?

Версия форума: IPB 3.3.1

В общем, вот у меня есть скрипт, который всегда запрашивает жать "OK".

 

<script language="JavaScript">
<!-- Begin
var zayti=confirm("Вы точно хотите сюда войти? \nЕсли нет, нажмите ОТМЕНИТЬ и Вы вернетесь туда, откуда пришли.");
if (zayti)
history.go(1);
else
history.back();
// End -->
</script>

 

Если его вставить в "index.php" таким способом:

 

 

require_once( './script.php' );

 

То на форум невозможно зайти.

 

Даже если с помощью include , всё равно ошибка..

 

Возможно, есть какой либо способ вставить скрипт без ошибки? В шаблон вставлять - не вариант, не помогает.

Рекомендованные сообщения

Даже если с помощью include , всё равно ошибка..

Удивительно. Может быть, дело в том, что такими инструкциями вы пытаетесь выполнить JavaScript сервером как PHP-код?

 

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

 

Добавьте в index.php перед "define( 'IPB_THIS_SCRIPT', 'public' );":

$sekret = '208923u90fww';
if (!isset($_COOKIE[$sekret])) {
 echo "
   <html><title>Антиддос</title><meta http-equiv='content-type' content='text/html; charset=UTF-8' />
   <script type='text/javascript'>
   if (confirm('Вы точно хотите сюда войти? Если нет, нажмите ОТМЕНИТЬ и Вы вернетесь туда, откуда пришли.')) {
     var today = new Date(); var expire = new Date(); var nDays = 1;
     expire.setTime(today.getTime() + 3600000*24*nDays);
     document.cookie = '{$sekret}=pass;expires='+expire.toGMTString();
     location.reload();
   } else {
     history.back();
   }
 </script>";
 exit();
}

  • Автор

Спасибо большое, помогло. Кстати, все боты моментально пропали с форума :)

Изменено пользователем Алексей

В принципе, совсем хорошо было бы, если добавить внутрь echo еще сообщение для пользователей без JS:

 

<noscript>Для работы с сайтом необходимо наличие JavaScript!</noscript>

 

И вы же в курсе, что поисковики всему этому не обрадуются? :)

  • Автор

Да, догадывался.. Буду ставить когда на форум пойдёт атака :)

  • 11 месяцев спустя...

А если ???? высвечиваются что делать?

 

И заоодно можно на 3.4.1 увидеть такое?

  • Автор

А если ???? высвечиваются что делать?

 

И заоодно можно на 3.4.1 увидеть такое?

 

Сделайте кодировку index.php в UTF-8 (возможно без BOM)

Будет работать на всех версиях я думаю. На 3.3.х работало!

Тем более это просто яваскрипт.

Создайте аккаунт или войдите в него для комментирования

Важная информация

При использовании данного сайта, вы согласаетесь с Условия использования и Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим..

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.