Утойванне DIV заснаваны на сесіі PHP

У мяне ёсць DIV, які змяшчае і cargo пры адкрыцці галоўнай старонкі сайта. Што ім спрабуюць дамагчыся таго, што, калі вэб-сайт адкрываецца ў першы раз, слайдэр павінен з'явіцца. Аднак, калі карыстальнік пераходзіць на іншую старонку, акрамя хатняй старонкі, а затым вяртаецца на галоўную старонку зноў, паўзунок не павінен з'яўляцца.

Ніжэй прыведзены код, які я спрабую выканаць:

<div class="homeslidermain" style="display:<?php echo empty($_SESSION['first_load']) ? 'block' : 'none'; ?>"> 

<?php putRevSlider("typewriter-effect", "homepage") ?>
</div>
0
дзе вы ўстанавілі first_load вар?
дададзена аўтар ThisGuyHasTwoThumbs, крыніца
Выкарыстоўвайце печыва або сеанс. Праверце, калі печыва/сесіі існуе ці не. Калі няма, то паказаць паўзунок і ўсталяваць печыва/сесіі, калі яна існуе, не паказваюць слайдэр.
дададзена аўтар Magnus Eriksson, крыніца

5 адказы

Рэкамендуемы спосаб будзе ўсталёўваць печыва, выкарыстоўваючы 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

... і ілжывым у любым іншым выпадку.

Адзіная прычына, чаму гэта можа пайсці не так, калі вы переинициализацию сеансу няправільна. Пераканайцеся, што вы ўсё яшчэ знаходзяцца ў адной і той жа сесіі пасля пераключэння старонак.

0
дададзена

Вы маглі б паспрабаваць нешта накшталт гэтага

// start the session 
session_start();

// set to false
$bShowBanner = false;

// if not set set to true and set session var
if(!isset($_SESSION['BannerShown'])){
    $bShowBanner = true;    
    $_SESSION['BannerShown'] = true;
}
?>

<div class="homeslidermain" style="display:<?php echo ($bShowBanner ? 'block' : 'none'); ?>"> 
    <?php putRevSlider("typewriter-effect", "homepage") ?>
</div>
0
дададзена
@atoms гэта не працуе, як з прыведзеных вышэй кодам, старонка не загружаецца.
дададзена аўтар user38208, крыніца
Старонка проста пустая. <�Код> <? PHP не было яшчэ ставіць ніякіх зменаў
дададзена аўтар user38208, крыніца
Я згодзен. Акрамя таго, я адчуваю, лепш было б выкарыстоўваць печыва. Для таго, каб не выкарыстоўваць убудаваныя стылі і прытрымлівацца свайго роду наймення. Тым не менш, мы не ведаем, калі ОП хоча яшчэ элементы візуалізацыі на старонку, але схаваны
дададзена аўтар atoms, крыніца
@ User38208 ёсць якія-небудзь паведамленні пра памылкі? Паспрабуйце пакласці <? PHP ў пачатку сцэнара. Калі вы ўжо ўсталявалі session_start() , вам не трэба выклікаць яго зноў
дададзена аўтар atoms, крыніца
Верагодна, было б лепш ідэя не выводзіць паўзунок на ўсё, калі гэта ўжо было паказана. Менш дадзеных для адпраўкі кліенту.
дададзена аўтар Magnus Eriksson, крыніца

Ёсць некалькі спосабаў дамагчыся гэтага, лепш за ўсё праверыць пры наведванні карыстальнікам старонкі ў першы раз

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
дададзена
Вы забыліся ўсталяваць сесію пасля першага званка. Толькі ў гэтым код будзе паказваць слайдэр кожны раз.
дададзена аўтар Magnus Eriksson, крыніца

Там няма неабходнасці выводзіць DIV , як Дысплей: не . Проста выведзіце 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
дададзена

Там няма неабходнасці выводзіць DIV , як Дысплей: не . Проста выведзіце 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
дададзена