我有一个网站(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/';
。它会导致这个问题吗?
答案 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());
}
}