Скрытие div на основе сессии в PHP - PullRequest
0 голосов
/ 28 декабря 2018

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

Ниже приведен код, который я пытаюсь реализовать:

<div class="homeslidermain" style="display:<?php echo empty($_SESSION['first_load']) ? 'block' : 'none'; ?>"> 
<?php putRevSlider("typewriter-effect", "homepage") ?>
</div>

Ответы [ 4 ]

0 голосов
/ 28 декабря 2018

Нет необходимости выводить div как display:none.Просто выводите div только когда пользователь впервые заходит на домашнюю страницу.Используйте функцию setcookie(), чтобы запомнить, что пользователь уже посетил домашнюю страницу, но учтите, что вам следует вызывать эту функцию перед любым выводом.

<?php

if (empty($_COOKIE['homepage_visited'])) {
    // Remember the first visit for one year
    setcookie('homepage_visited', 1, strtotime('+1 year'));

    // Show the slider
    echo '<div class="homeslidermain">';
    putRevSlider("typewriter-effect", "homepage");
    echo '</div>';
}
0 голосов
/ 28 декабря 2018

Есть несколько способов добиться этого, лучше всего проверить, посещает ли пользователь страницу в первый раз

session_start();
if(!isset($_SESSION['first_load']))
{
   $_SESSION['first_load'] = '1';
}
if(empty($_SESSION['first_load']))
{?>
   <div> 
    Slider block //  this block loads only is first load is empty
   </div>

<?php
}?>
0 голосов
/ 28 декабря 2018

Рекомендованным способом было бы установить cookie с использованием setcookie() и getcookie() (http://php.net/manual/de/features.cookies.php).

. Если вы хотите использовать сеанс, то вы неправильно устанавливаете «first_load». Убедитесь, что налюбой вызов страницы:

session_start(); // before you do anything else 

if(!isset($_SESSION['first_load'])) // set it to true on first load

... и false в любом другом случае.

Единственная причина, по которой это может пойти не так, - это если вы неправильно инициализируете свой сеанс. Убедитесь, что вывсе еще находятся в том же сеансе после переключения страниц.

0 голосов
/ 28 декабря 2018

Вы можете попробовать что-то вроде этого

// start the session 
session_start();

$bShowBanner = true;    

if(isset($_SESSION['BannerShown'])){
    $bShowBanner = false;
}else{
    $_SESSION['BannerShown'] = true;
}
?>

<div class="homeslidermain" style="display:<?php echo ($bShowBanner ? 'block' : 'none'); ?>"> 
    <?php putRevSlider("typewriter-effect", "homepage") ?>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...