【问题标题】:Codeignitier session outside application folder?应用程序文件夹外的Codeigniter会话?
【发布时间】:2015-09-23 18:39:04
【问题描述】:

我有一个网站,我需要将 wordpress 用于单页,因为我需要一些来自 wordpress 的插件。

我唯一的问题是从 wordpress 调用 $_SESSION['email'],即使我将它设置在 codeignitier 模型中。

public_html
application
  model
    User_Model.php
wordpress
  wp-content
    themes
      twentyfourteen
        header.php

所以我想从 header.php 调用会话中定义 User_Model.php 中的内容

   $newdata = array(
      'email'    => $rows->user_email,
      'logged_in'  => TRUE,
    );
   }
   $this->session->set_userdata($newdata);
   $_SESSION['email'] = $newdata['email'];
   $_SESSION['logged_in'] = $newdata['logged_in'];

我能以某种方式在 ci 之外获取 userdata 或 $_SESSION 变量吗?

【问题讨论】:

    标签: php wordpress codeigniter session


    【解决方案1】:

    我认为您没有在 codeignitier 之外获得 $_SESSION 变量作为 ci。但是如果你只是想使用 php $_SESSION 变量,那么你可以像下面这样使用它。

    首先检查您的文件是否启动了 SESSION,如果没有,则首先启动 SESSION,然后获取 $_SESSION 数据,如下所示。

    session_start();
    echo $_SESSION['email'];
    

    【讨论】:

    • 谢谢,你提醒我 session_start(),我忘了。
    • @DocNet 没关系,如果这对您有帮助,那么请您批准我的回答。 :)
    【解决方案2】:

    CodeIgniter 不使用标准的 PHP 会话,而是将会话数据直接保存在浏览器 cookie 中,因此无法在应用程序之外使用 CI 会话。

    但是有一个native sessison library 用于使用标准 PHP 会话的 codeigniter,因此它们在您的应用程序之外可用。

    如果你这样做了,那就这样

    $this->load->library( 'nativesession' );
    $this->nativesession->set( 'cart', $cart );  //this will set the session
    

    你可以在外面做 CI

    $_SESSION['cart'] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多