Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Скрытия блока на основе переменной из в php.

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

1. andresto - 26 Июля, 2017 - 15:44:45 - перейти к сообщению
Помогите пожалуйста правильно скрыть блоки на основе переменной в php.
Пользователь определяется по IP, и если он попадает под правило if($isBUser) то для него надо скрыть два элемента на странице, чтобы он их не видел <div class="itemBlock1"> и <div class="itemBlock2">.
2. Vladimir Kheifets - 26 Июля, 2017 - 16:18:29 - перейти к сообщению
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.  
3. andresto - 26 Июля, 2017 - 17:03:50 - перейти к сообщению
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;.
4. Vladimir Kheifets - 26 Июля, 2017 - 18:43:42 - перейти к сообщению
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;.

Значит полный код такой:
Спойлер (Отобразить)
5. LIME - 28 Июля, 2017 - 23:01:46 - перейти к сообщению
тоесть если юзер плохой то не отображаем элементы?
а если очень плохой и умеет смотреть исходник страницы?
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.  

может не дадим ему шансов вообще?
6. Vladimir Kheifets - 29 Июля, 2017 - 08:36:00 - перейти к сообщению
LIME пишет:
тоесть если юзер плохой то не отображаем элементы?
а если очень плохой и умеет смотреть исходник страницы?
может не дадим ему шансов вообще?
Доброе утро! Соглавсен, если "очень плохой и умеет смотреть исходник страницы", то лучше div-ы совсем закрыть.
Однако на мой вопрос, что нужно сделать, автор топика ответил:
andresto пишет:
Да верно, два div контейнера должны быть не видны для $isBadUser (если пользователь плохой), к ним следует применить display: none;.
К сожалению, иногда приходится делать не то, что лучше, а то что хочет заказчик и бывают задачи, которые придумывают не практики, а эксперты.
7. LIME - 29 Июля, 2017 - 19:58:17 - перейти к сообщению
Vladimir Kheifets пишет:
К сожалению, иногда приходится делать не то, что лучше, а то что хочет заказчик и бывают задачи, которые придумывают не практики, а эксперты.
верно
однако мы как знающие люди должны предоставить постановщику задачи варианты решения и совместно с ним выяснить чего он на самом деле хочет
например на этом форуме очень часто переспрашивают в чем состоит собственно сверх задача и предлагают альтернативные решения вместо тупого следования букве вопроса
на то ты и "спец"
думаю ты согласишься и не начнешь спорить ради спора)
а в целом да
иногда приходится фэйспалмить
8. Vladimir Kheifets - 30 Июля, 2017 - 16:38:08 - перейти к сообщению
LIME пишет:
мы как знающие люди должны предоставить постановщику задачи варианты решения и совместно с ним выяснить чего он на самом деле хочет

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

 

Powered by ExBB FM 1.0 RC1