Tout d'abord, vous devez savoir que par défaut CodeIgniter stocke ses variables de session dans le cookie. Si vous souhaitez que la session soit stockée dans un emplacement susceptible de contenir des données de grande taille, modifiez les paramètres afin qu'elle utilise la table de base de données pour stocker les données de session. Ouvrez système/application/config.php et modifier la section $ config [ 'de sess_use_database'] ligne en session Variables dans:
$config['sess_use_database'] = TRUE;
et créer la table de base de données de session:
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)
);
Pour utiliser sessions, vous devez d'abord charger la bibliothèque de session: (par exemple, dans le système/application/contrôleur/cmilestone.php)
function CMilestone(){
parent::Controller();
$this->load->library('Session');
}
Ensuite, vous pouvez définir la session à l'intérieur de l'une des méthodes:
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);
}
Mais je pense que vous devriez vraiment utiliser POST pour faire des opérations. Si vous souhaitez utiliser POST et le filtre xss de CI, le $ _GET ["add2cart"] sera remplacé par $ this-> input-> post ('add2cart', true)