【问题标题】:php session are not working wordpressphp会话不工作wordpress
【发布时间】:2015-07-01 11:14:07
【问题描述】:

在 wordpress 中的会话不工作。我想在第一次加载网站时加载 div。

 <?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 } ?>

【问题讨论】:

  • “不工作” - 它是做什么的?错误消息、日志文件、所发生情况的描述可能有助于诊断问题

标签: php wordpress session


【解决方案1】:

请在function.php中添加代码 试试这个:

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

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

【讨论】:

    【解决方案2】:

    您的会话代码对我来说似乎很好,但您只是在设置它们之后才访问它们。下面我展示了会话是如何工作的

    当您打开页面请求的表单服务器时,您会获得 phpsessid 并使用此 ID 按会话将数据存储在服务器上,因此您需要获取这些数据 .. 通常您重新加载/发出 ajax 请求,以便您可以获取数据。

    Session id : data {some data}
    

    键值对(哈希表)

    所以试试

     <?php 
    
     if(isset($_SESSION['div_loading'])
         echo $_SESSION['div_loading'];
     else
         echo 1;
    

    【讨论】:

      【解决方案3】:

      这应该是您当前活动主题的 functions.php 文件中的第一行。

      if (!session_id())
          session_start();
      

      【讨论】:

        【解决方案4】:

        您必须使用 cookie 而不是会话。在大多数情况下(取决于 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']

        【讨论】:

        • 会话也是一种 cookie :D 并且会话在关闭浏览器时不会被破坏.. 我们会明确地这样做
        • 是的,简而言之,它们就是 cookie。但是,如果您希望仅在首次访问时执行特定操作,则不能依赖 cookie。
        • 正是他需要重新加载页面或进行ajax调用来获取数据
        猜你喜欢
        • 2011-08-16
        • 2012-02-13
        • 1970-01-01
        • 2013-01-29
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        相关资源
        最近更新 更多