Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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.х работало!

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.