Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скрытия блока на основе переменной из в php.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Скрытия блока на основе переменной из в php.
andresto
Отправлено: 26 Июля, 2017 - 15:44:45
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Помогите пожалуйста правильно скрыть блоки на основе переменной в php.
Пользователь определяется по IP, и если он попадает под правило if($isBUser) то для него надо скрыть два элемента на странице, чтобы он их не видел <div class="itemBlock1"> и <div class="itemBlock2">.
 
 Top
Vladimir Kheifets
Отправлено: 26 Июля, 2017 - 16:18:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




andresto пишет:
Помогите пожалуйста правильно скрыть блоки на основе переменной в php.
Пользователь определяется по IP, и если он попадает под правило if($isBUser) то для него надо скрыть два элемента на странице, чтобы он их не видел <div class="itemBlock1"> и <div class="itemBlock2">.

Добрый день! Уточню, как я понял. Если if($isBUser) true, то два div контейнера должны быть не видны.
Попробуйте сделать так (контейнеры будут невидимыми и "свернуться"):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $display=($isBUser)?"none":"block";
  4. ?>
  5. <style>
  6. .itemBlock1, .itemBlock2{display:<?=$display?>}
  7. </style>


или так (контейнеры будут невидимыми):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?    
  3.     $visibility=($isBUser)?"hidden":"visible";
  4. ?>
  5.     <style>
  6.     .itemBlock1, .itemBlock2{visibility:<?=$visibility?>}
  7.     </style>
  8.  

(Отредактировано автором: 26 Июля, 2017 - 16:50:49)

 
 Top
andresto
Отправлено: 26 Июля, 2017 - 17:03:50
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Vladimir Kheifets пишет:
andresto пишет:
Помогите пожалуйста правильно скрыть блоки на основе переменной в php.
Пользователь определяется по IP, и если он попадает под правило if($isBUser) то для него надо скрыть два элемента на странице, чтобы он их не видел <div class="itemBlock1"> и <div class="itemBlock2">.

Добрый день! Уточню, как я понял. Если if($isBUser) true, то два div контейнера должны быть не видны если пользователь isBadUser.


Добрый День. Вот полный код, так будет более понятно.

"Класс только выдает 0 или 1. 1 - если пользователь плохой, 0 - если нормальный. Всю логику работы с пользователем вам необходимо реализовать самостоятельно (скрыть блок, показать заглушку...)
zapret.php class проверки пользователя."
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $apikey = ""; // может быть пустым
  4. require_once("zapret.php");
  5. $zapret=new Zapret("");
  6. if (isset($_SERVER["HTTP_CF_CONNECTING_IP"]))
  7. $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $isBadUser=$zapret->isBadIp($ip , $apikey);
  10. // if($isBadUser) Самостоятельно реализуйте логику скрытия блока на основе переменной из $isBadUser.
  11. ?>

Да верно, два div контейнера должны быть не видны для $isBadUser (если пользователь плохой), к ним следует применить display: none;.
 
 Top
Vladimir Kheifets
Отправлено: 26 Июля, 2017 - 18:43:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




andresto пишет:
Vladimir Kheifets пишет:
andresto пишет:
Помогите пожалуйста правильно скрыть блоки на основе переменной в php.
Пользователь определяется по IP, и если он попадает под правило if($isBUser) то для него надо скрыть два элемента на странице, чтобы он их не видел <div class="itemBlock1"> и <div class="itemBlock2">.

Добрый день! Уточню, как я понял. Если if($isBUser) true, то два div контейнера должны быть не видны если пользователь isBadUser.


Добрый День. Вот полный код, так будет более понятно.

"Класс только выдает 0 или 1. 1 - если пользователь плохой, 0 - если нормальный. Всю логику работы с пользователем вам необходимо реализовать самостоятельно (скрыть блок, показать заглушку...)
zapret.php class проверки пользователя."
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $apikey = ""; // может быть пустым
  4. require_once("zapret.php");
  5. $zapret=new Zapret("");
  6. if (isset($_SERVER["HTTP_CF_CONNECTING_IP"]))
  7. $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $isBadUser=$zapret->isBadIp($ip , $apikey);
  10. // if($isBadUser) Самостоятельно реализуйте логику скрытия блока на основе переменной из $isBadUser.
  11. ?>

Да верно, два div контейнера должны быть не видны для $isBadUser (если пользователь плохой), к ним следует применить display: none;.

Значит полный код такой:
Спойлер (Отобразить)

(Отредактировано автором: 27 Июля, 2017 - 07:28:40)

 
 Top
LIME
Отправлено: 28 Июля, 2017 - 23:01:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




тоесть если юзер плохой то не отображаем элементы?
а если очень плохой и умеет смотреть исходник страницы?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP if (!$isBadUser) { ?>
  3. <div class="itemBlock1">
  4. .............
  5. </div>
  6. <?PHP } ?>
  7. ...
  8. <?PHP if (!$isBadUser) { ?>
  9. <div class="itemBlock2">
  10. .............
  11. </div>
  12. <?PHP } ?>
  13.  

может не дадим ему шансов вообще?
 
 Top
Vladimir Kheifets
Отправлено: 29 Июля, 2017 - 08:36:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




LIME пишет:
тоесть если юзер плохой то не отображаем элементы?
а если очень плохой и умеет смотреть исходник страницы?
может не дадим ему шансов вообще?
Доброе утро! Соглавсен, если "очень плохой и умеет смотреть исходник страницы", то лучше div-ы совсем закрыть.
Однако на мой вопрос, что нужно сделать, автор топика ответил:
andresto пишет:
Да верно, два div контейнера должны быть не видны для $isBadUser (если пользователь плохой), к ним следует применить display: none;.
К сожалению, иногда приходится делать не то, что лучше, а то что хочет заказчик и бывают задачи, которые придумывают не практики, а эксперты.

(Отредактировано автором: 29 Июля, 2017 - 08:40:12)

 
 Top
LIME
Отправлено: 29 Июля, 2017 - 19:58:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Vladimir Kheifets пишет:
К сожалению, иногда приходится делать не то, что лучше, а то что хочет заказчик и бывают задачи, которые придумывают не практики, а эксперты.
верно
однако мы как знающие люди должны предоставить постановщику задачи варианты решения и совместно с ним выяснить чего он на самом деле хочет
например на этом форуме очень часто переспрашивают в чем состоит собственно сверх задача и предлагают альтернативные решения вместо тупого следования букве вопроса
на то ты и "спец"
думаю ты согласишься и не начнешь спорить ради спора)
а в целом да
иногда приходится фэйспалмить
 
 Top
Vladimir Kheifets
Отправлено: 30 Июля, 2017 - 16:38:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




LIME пишет:
мы как знающие люди должны предоставить постановщику задачи варианты решения и совместно с ним выяснить чего он на самом деле хочет

Добрый день!
Согласен, мы как знающие люди должны предоставить постановщику задачи варианты решения.
Раз мы “спецы”, то можем позволить себе “глубокое бурение” этой темы.
Разумеется, не ради спрора, а по сути.
Итак, есть разметка страница и мы знаем, что есть два <div>-контейнера.
Осмелюсь предположить, что на странице есть еще у другие объекты.
К сожалению, мы не знаем, как эти div-вы позиционируются, но скорее всего по умолчанию, position: static
Если сделать, так как предложил ты – не выводить эти div-ы, то разметка страницы развалится.
Поэтому правильнее было бы, фиксировать размеры контейнеров,
а содержимое выдавать по условиям т.е.
Спойлер (Отобразить)
а в целом ты прав. С уважением, Владимир

(Отредактировано автором: 30 Июля, 2017 - 16:41:37)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB