Php-da sessiya asosida divni yashirish

Veb-saytning bosh sahifasi ochilganda, slaydni o'z ichiga olgan div bor. Veb-saytingiz birinchi marta ochilganda, slayder paydo bo'lishi kerak, degani. Biroq, foydalanuvchi bosh sahifadan boshqa bir sahifaga o'tadi va keyin yana bosh sahifaga qaytadi, kaydırıcı görünmemelidir.

Quyida amalga oshirishga harakat qiladigan kod:

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

<?php putRevSlider("typewriter-effect", "homepage") ?>
</div>
0
first_load ni qaerga qo'yasiz?
qo'shib qo'ydi muallif ThisGuyHasTwoThumbs, manba
Cookie yoki seansdan foydalaning. Cookie/sessiya mavjud yoki yo'qligini tekshiring. Agar yo'q bo'lsa, slayderni ko'rsating va agar mavjud bo'lsa cookie/sessiyani sozlang, slayderni ko'rsatma.
qo'shib qo'ydi muallif Magnus Eriksson, manba

5 javoblar

Tavsiya etilgan usul cookie faylini setcookie() va getcookie() ( http://php.net/manual/de/features.cookies.php ).

Agar siz seansdan foydalanishni xohlasangiz, siz "first_load" ni noto'g'ri sozlaysiz. Har qanday sahifada qo'ng'iroq qilishda ishonch hosil qiling:

session_start();//before you do anything else 

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

... va boshqa hollarda yolg'on.

Buning sababi noto'g'ri bo'lishi mumkinligining yagona sababi - sessiyangizni noto'g'ri ishga tushirish. Sahifalarni almashtirgandan keyin ham xuddi shu seansda ekanligingizga ishonch hosil qiling.

0
qo'shib qo'ydi

Bunaqa narsalarni sinab ko'rsating

// 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
qo'shib qo'ydi
@tomatiklar yuqoridagi kod bilan ishlamaydi, sahifa yuklamaydi.
qo'shib qo'ydi muallif user38208, manba
Sahifa faqat bo'sh. <? PHP hali hech qanday o'zgartirish kiritilmagan
qo'shib qo'ydi muallif user38208, manba
Men roziman. Bundan tashqari men o'zimning cookie-fayllardan foydalanishim yaxshiroq fikrdaman. Inline uslublarini ishlatmaslik va bir xil nomlash qoidalariga tayanish. Biroq, biz OP sahifasi hali elementlarga ko'rsatiladigan, lekin yashirin bo'lganligini xohlamaymiz
qo'shib qo'ydi muallif atoms, manba
@ user38208 har qanday xato xabari mavjudmi? Skript boshida <? PHP ni qo'yib ko'ring. Agar siz allaqachon session_start() ni o'rnatgan bo'lsangiz, uni qayta qo'ng'iroq qilishingiz shart emas
qo'shib qo'ydi muallif atoms, manba
Ko'rinib turganidek, slippni chiqarib olmaslik yaxshi bo'ladi. Mijozga jo'natish uchun kam ma'lumot.
qo'shib qo'ydi muallif Magnus Eriksson, manba

Bunga erishishning bir necha yo'li mavjud, foydalanuvchi tashrif buyurgan sahifani birinchi marta tekshirishni nazorat qilish kerak

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
qo'shib qo'ydi
Siz birinchi suhbatdan keyin sessiyani sozlashni unutgansiz. Bu kod faqat slaydni har safar ko'rsatishi mumkin.
qo'shib qo'ydi muallif Magnus Eriksson, manba

display: none deb div ni chiqarishga hojat yo'q. Faqatgina foydalanuvchi birinchi marta tashrif buyurganida div ni chiqarsin. Foydalanuvchining kodini ochib, uni eslab qolish uchun setcookie() funktsiyasidan foydalaning, lekin iltimos bu funksiyani har qanday chiqishdan oldin chaqirish kerakligini unutmang.

<?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
qo'shib qo'ydi

display: none deb div ni chiqarishga hojat yo'q. Faqatgina foydalanuvchi birinchi marta tashrif buyurganida div ni chiqarsin. Foydalanuvchining kodini ochib, uni eslab qolish uchun setcookie() funktsiyasidan foydalaning, lekin iltimos bu funksiyani har qanday chiqishdan oldin chaqirish kerakligini unutmang.

<?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
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin