Я пытаюсь использовать собственные массивы $ _SESSION в Codeigniter, потому что я не могу использовать массивы $ _COOKIES, поэтому я создал свой собственный класс, но кажется, что Codeigniter продолжит сохранять данные в кокки, потому что если я отключу файлы cookie браузера, я могу 't получить данные $ _SESSION: O !!невероятно .... я не могу понять почему?codeigniter останавливает или удаляет все заданные данные $ _SESSION?
Есть ли кто-то, кто все еще использует только массивы $ _SESSION, отменяя параметр $ _COOKIE по умолчанию по умолчанию?я имею в виду, что я хотел бы иметь данные сеанса, а не данные cookie, но это кажется невозможным: O !!! ?? !!
Я переименовал исходную библиотеку Cession.php в CI в Cookie.php, и затемя сделал два личных класса в приложении / библиотеках и по умолчанию загружаю их в autoloader.php
1) Личная библиотека - Session.php
session_start();
class Session {
function set_data($key,$data)
{
if(!$key)
{ echo 'first param passed is null in session set_data';}
if(!$data)
{ echo 'second param passed is null in session set_data';}
if(isset($key) && isset($data))
{
if(isset($_SESSION[$key]))
{
unset($_SESSION[$key]);
}
return $_SESSION[$key] = $data;
}
function keep_data($key)
{
if(!$key)
{ echo 'first param passed is null in session keep_data';}
if(isset($_SESSION[$key]))
{
return htmlentities($_SESSION[$key]);
}
}
2) Личная библиотека -Settings.php
class Settings {
function setsitelanguage()
{
$CI =& get_instance();
if($CI->session->keep_data('lang'))
{
$CI->config->config['language'] = $CI->session->keep_data('lang');
}
else
{
$CI->config->config['language'] = "en";
}
}
чем у меня есть 2 контроллера
1) Контроллер Home.php
class Home extends Controller {
function Home()
{
parent::Controller();
$this->settings->setsitelanguage();
}
function index()
{
$this->load->view('home/home_view');
}
function session()
{
echo $this->session->keep_data('lang');
}
}
2) КонтроллерAuth.php
class Auth extends Controller {
function usersetlang()
{
$lang = $this->uri->segment(3);
return $this->session->set_data('lang',$lang);
}
}
, как показано в http://mysite/index.php/home/session
, я могу получить свой языковой сайт, сохраненный в файле session.php, с помощью auth.php, единственная проблема заключается в том, что недостаточно использовать глобальный $_SESSION[]
, потому что, если я пытаюсь получить данные, отключающие файлы cookie моего браузера, $_SESSION[]
данные не отображаются !!!