【问题标题】:Codeigniter 3 cookies not working on the serverCodeigniter 3 cookie 在服务器上不起作用
【发布时间】:2017-07-31 23:14:06
【问题描述】:

我的代码在本地主机上运行良好,但在服务器上却不运行。

下面是首页功能

$this->input->set_cookie('ci_sm', 'test', 86400);

我正在尝试从另一个页面/功能读取此内容

echo get_cookie('ci_sm');

因为库是通过 autoload.php 加载的

$autoload['helper'] = array('cookie');

在 Ubuntu 服务器上测试它,但它似乎不起作用。 如果您遇到此问题,请提供任何帮助。

【问题讨论】:

  • 是否产生任何错误?
  • 没有产生错误

标签: php codeigniter cookies


【解决方案1】:

以下是我的建议,可能有助于解决此问题:

对于站点范围的 cookie,无论您的站点是如何被请求的,请将您的 URL 添加到以句点开头的域中,例如:.your-domain.com

CIset_cookie函数的结构是:

$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);

所以你最终的set_cookie 函数将是这样的:

$this->input->set_cookie('ci_sm', 'test', 86400, '.some-domain.com');

【讨论】:

  • 谢谢你 Mahbubl,将域信息添加到 cookie 就可以了。
  • 我删除了“.” (点)域名。这对我有用。
【解决方案2】:

默认情况下在您的配置文件中或在您的 控制器。您可以通过创建一个数组来遵循我的代码示例 用任何数据设置值。

class Cookie_controller extends CI_Controller { 

      function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('cookie', 'url')); 
      } 

      public function index() { 
      } 

      public function display_cookie() { 
            $cookie = array(
                'name'   => 'data',
                'value'  => '21',
                'expire' =>  92000,
                'secure' => false
            );
            $this->input->set_cookie($cookie); 
            var_dump($this->input->cookie('data', false)); 
      } 


   } 

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2017-06-12
    • 1970-01-01
    相关资源
    最近更新 更多