Я попытался сделать session.auto_start = On
в .user.ini .. моя программа находится в хосте. Я хочу разместить кнопку в навигационной панели, чтобы скользить между фарси и английским sh. Когда кнопка нажата, она отправляет $_GET['lang']
. и когда lang установлен, он меняет язык на количество этого. если $_GET['lang']
не установлено, по умолчанию оно остается «eng». когда я получаю session_id();
, это показывает, что это делает сессию, а также показывает, что это идентификатор. и в моем session_save_path (); я вижу это . но я не знаю, почему, когда я обновляю sh страницу, она не продолжает ту предыдущую сессию и создает новую. Я попытался поставить session_start (); Функция сразу после конструктора MY_Controller. MY_Controller - это класс, который я создал в application/core/
, и все мои контроллеры унаследованы от него. и я сделал один контроллер для каждой страницы, кроме входа в систему, в котором контроллер входа управляет страницей входа и регистрации. Вот некоторые части My_Controller:
function __construct() {
parent::__construct();
//phpinfo();
//$this->lang->load("public" , "fa");
//$this->session_fixer();
self::setTables();
$this->load->library('form_validation');
$this->load->helper('myform_helper');
$this->setlang();
//echo $_SESSION['lang'];
self::set_scope_constants();
$this->load->library('Template');
//$this->load->library('database');
$this->lang->load('public_lang' , 'fa');
$this->load->helper('url');
$this->message = array();
if(isset($_SESSION['user_id'])){
//echo "RAN";
$this->user_logged_in(true);
}
}
function setlang(){
if(isset($_GET['lang'])){
if(secure_input(get('lang'))){
if($_GET['lang'] == 'fa'){
$this->langchange('fa');
//echo "Hello";
}else{
$this->langchange();
}
//$_GET['lang'] = '';
}else{
//$this->langchange('eng');
$_SESSION['lang'] = $this->wlang;
}
}
}
public function langchange($value = ''){
if($value == ''){
$_SESSION['lang'] = 'eng';
//echo $_SESSION['lang'];
}else if($value == 'fa'){
$_SESSION['lang'] = 'fa';
//echo $_SESSION['lang'];
}
$this->wlang = $_SESSION['lang'];
//echo "Hello";
//header("Refresh:0");
}
private function session_fixer(){
if(!isset($_SESSION))
{
session_set_cookie_params(time() + $this->config->item('sessionlifetime'),'' ,'' , true , true );
session_start();
//echo session_id();
//echo "MigMig";
}else{
setcookie(session_name(),session_id(),time()+$this->config->item('sessionlifetime') , '' , '' , true , true);
session_start();
//echo "HElll";
//echo session_id();
}
}
я сделал $this->session_fixer();
комментарий после поворота session.auto_start
= on