我的网站Codeigniter3中未定义的问题

时间:2017-11-22 20:54:12

标签: php codeigniter

我有一个网站(https://wtf.az/),但是当我想要更改语言时,它会刷新页面,但在第一次尝试时不会更改。但是,当我点击另一个URL时,它会更改语言。此外,当我想登录时会出现此问题。问题出在哪里?这是控制器:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');
class LanguageSwitcher extends CI_Controller
{
    public function __construct() {
        parent::__construct();     
    }

    function switchLang($language = "") {

        $language = ($language != "") ? $language : "azerbaijani";
        $this->session->set_userdata('site_lang', $language);

        redirect($_SERVER['HTTP_REFERER']);

    }
}

这是我的钩子:

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

class LanguageLoader
{
    function initialize() {
        $ci =& get_instance();
        $ci->load->helper('language');
        $siteLang = $ci->session->userdata('site_lang');
        if ($siteLang) {
            $ci->lang->load('header',$siteLang);
            $ci->lang->load('footer',$siteLang);
            $ci->lang->load('index',$siteLang);

        } else {
            $ci->lang->load('header','azerbaijani');
            $ci->lang->load('footer','azerbaijani');
            $ci->lang->load('index','azerbaijani');

        }
    }
}

我已将$config['sess_save_path'] = NULL;更改为$config['sess_save_path'] = BASEPATH . 'cache/';。它会导致这个问题吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

更改

redirect($_SERVER['HTTP_REFERER']);

redirect(base_url());

并将$this->load->helper('url');添加到构造函数。

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

class Languageswitcher extends CI_Controller
{
    public function __construct() {
        parent::__construct();
        $this->load->helper('url'); 
    }

    function switchLang($language = "") {

        $language = ($language != "") ? $language : "azerbaijani";
        $this->session->set_userdata('site_lang', $language);

        redirect(base_url());

    }
}