2015-07-01 4 views
1

В сеансе Wordpress не работает. Я хочу загрузить div в первый раз загрузки сайта.php session не работает wordpress

<?php session_start(); 
 
if(!isset($_SESSION['div_loading'])) 
 
{ 
 
    $_SESSION['div_loading'] = 1; 
 
?> 
 
<div class="blockUI blockOverlay" style="z-index: 1000; border: none; margin: 0px; padding: 0px; width: 100%; height: 100%; top: 0px; left: 0px; opacity: 0.8; cursor: wait; position: fixed; background-color: rgb(0, 0, 0);"></div> 
 
<div class="blockUI blockMsg blockPage" style="z-index: 1011; position: fixed; padding: 0px; margin: 0px; width: 806px; top: 25%; left: 19.5%; text-align: center; color: rgb(0, 0, 0); border: 3px solid rgb(170, 170, 170); background-color: rgb(255, 255, 255);"> 
 
<div id="brewery-check"> 
 
    <h2>Please Select</h2> 
 
    <?php echo $_SESSION['div_loading'] ; 
 
    ?> 
 
    <a href="/#" id="brewery-link"> 
 
link1 
 
    </a> 
 
    <a href="http://google.com" id="restaurant-link"> 
 
link2 
 
    </a> 
 
</div> 
 
</div> 
 
<?php } ?>

+1

«не работает» - что он делает вместо этого? сообщение об ошибке, файлы журналов, описание того, что происходит, могут помочь диагностировать проблему. – lessthanideal

ответ

0

Вы должны использовать куки вместо сессии. В большинстве случаев (это зависит от настроек PHP) сессия будет иметь ограниченное время жизни.

Если вы хотите сделать это в правильном направлении, вы можете использовать крюк init и настроить свои данные cookie. Вы можете поместить этот фрагмент кода в свой файл functions.php.

<?php 

function sw_31159775() { 
    if (!isset($_COOKIE['your_cookie_name'])) { 
     $expirity= time() + (10 * 365 * 24 * 60 * 60); 
     setcookie('your_cookie_name', 'some value', $expirity); 
    } 
} 

add_action('init', 'sw_31159775'); 

?> 

И тогда вы можете получить доступ к $_COOKIE['your_cookie_name'] в любом месте вашего кода.

+0

сеанс также является одним из файлов cookie: D и сеанс не уничтожаются при закрытии браузера. Мы делаем это явно –

+0

Да, это куки-файлы в двух словах. Но вы не можете полагаться на файлы cookie, если вы хотите, чтобы определенные действия выполнялись только для первого посещения. – vitozev

+0

именно ему нужно перезагрузить страницу или сделать вызов ajax для получения данных –

0

пожалуйста, добавьте код в function.php Попробуйте это:

function Sessioninit() { 
    if(!session_id()) { 
     session_start(); 
    } 
} 

add_action('init', 'Sessioninit', 1); 
0

код сеанса кажется, хорошо для меня, но вы к ним доступ только после установки их. ниже я показываю, как работает сеанс

Когда вы открываете страницу с запрошенной формой, вы получаете phpsessid, и с этим идентификатором вы храните данные на сервере по сеансу, поэтому вам нужно получить эти данные .. и обычно вы перезагружаете/делаете запрос ajax, поэтому что вы можете получать данные.

Session id : data {some data} 

значение ключа пара (хэш-таблица)

поэтому попробуйте

<?php 

if(isset($_SESSION['div_loading']) 
    echo $_SESSION['div_loading']; 
else 
    echo 1; 
0

Это должно быть первая строка в файле functions.php вашей текущей активной темы.

if (!session_id()) 
    session_start(); 
Смежные вопросы