Сессия Codeigniter работает на локальном хосте, но не на веб-сервере

1

Я пытаюсь использовать сеанс в своем проекте. Он работает на localhost, но не на веб-сервере. Я прочитал несколько статей об этом в stackoverflow и ellislab, но это не сработало для моего проекта. Вероятно, проблема заключается в создании вспомогательных классов.

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Memberlogin extends CI_Controller {

//protected $CI;

function __construct()
{
    $CI =& get_instance();

    parent::__construct();

    $CI->load->library('session');
    //$this->load->library('form_validation');
    //$this->load->helper(array('form', 'url'));
    $CI->load->helper('date');
    $CI->load->helper('ip_address');
    $CI->load->model('Sql_model');
}

Теперь ошибки:

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Line Number: 14

а также

A PHP Error was encountered

Severity: Error

Message: Call to a member function library() on a non-object

Line Number: 14
  • 1
    Это каталог controllers или класс каталогов libraries ?
  • 0
    Этот класс в каталоге контроллера
Теги:
codeigniter
session

3 ответа

0

Это сделает вас сумасшедшими. но он работает.

В autoload.php

$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('url','date','ip_address');

и модель загрузки в __constructor

public function  __construct()
{
    parent::__construct();
    $this->load->model('Sql_model');
}
0

Попробуйте этот код,

function __construct()
{
    parent::__construct();

    $this->load->library('session');
    $this->load->helper('date');
    $this->load->helper('ip_address');
    $this->load->model('Sql_model');
}

Если класс находится в каталоге контроллеров, вы можете напрямую получить экземпляр CI, расширив CI_Controller и используя $this.

  • 0
    В начале я пробовал это, но он работает только на localhost.
  • 0
    но это должно помочь вам как на локальном, так и на живом сервере, в этом нет необходимости $CI =& get_instance(); и используя $CI->
Показать ещё 8 комментариев
0

Затем попробуйте без вызова функции get_instance(). Так же, как документы говорят:

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Memberlogin extends CI_Controller {

//protected $CI;

function __construct()
{
    parent::__construct();

    $this->load->library('session');
    //$this->load->library('form_validation');
    //$this->load->helper(array('form', 'url'));
    $this->load->helper('date');
    $this->load->helper('ip_address');
    $this->load->model('Sql_model');
}
  • 0
    Я попробовал это. Но сессия не работает, когда я использовал это. Когда я начал использовать $ CI по крайней мере, он пытается войти в функцию входа в Sql_model

Ещё вопросы

Сообщество Overcoder
Наверх
Меню