Сначала вы должны знать, что по умолчанию CodeIgniter сохраняет свои переменные сеанса в файле cookie.Если вы хотите, чтобы сеанс хранился где-то, где могут храниться данные большого размера, измените настройки, чтобы он использовал таблицу базы данных для хранения данных сеанса.Откройте файл system / application / config.php и измените строку $ config ['sess_use_database'] в разделе переменных сеанса на:
$config['sess_use_database'] = TRUE;
, а также создайте таблицу базы данных сеанса:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
PRIMARY KEY (session_id)
);
Чтобы использовать сеансы, вы должны сначала загрузить библиотеку сеансов: (например, в system / application / controller / cmilestone.php)
function CMilestone(){
parent::Controller();
$this->load->library('Session');
}
Затем вы можете установить сеанс внутри одного из методов:
function something() {
if ($this->session->userdata('gids') === false) $this->session->set_userdata('gids',array());
$i=0;
$gids = $this->session->userdata('gids');
while ($i<count($gids) && $gids[$i] != $_GET["add2cart"]) $i++;
if ($i < count($gids)) //increase current product's item quantity
{
}
else //no such product in the cart - add it
{
$gids[] = $_GET["add2cart"];
$this->session->set_userdata('gids',$gids);
}
Но я думаю, что вы действительно должны использовать POST для выполнения операций.Если вы хотите использовать xss-фильтр POST и CI, то $ _GET ["add2cart"] будет заменено на $ this-> input-> post ('add2cart', true)