Gestire i cookie con CodeIgniter
Oggi vediamo come gestire i cookie attraverso il framework CodeIngiter.
In generale abbiamo tre funzioni:
- get_cookie
- set_cookie
- delete_cookie
Nel mio caso sto usando i cookie per salvare la lingua scelta (Italiano o Inglese).
Per la gestione del cookie ho creato un model apposito da richiamare dove mi serve.
Fate attenzione che la funzione set_cookie è leggermente diversa dalla funzione setcookie nativa di PHP.
Ad esempio i parametri path e dominio sono invertiti, e in CI mancano alcuni parametri.
Vediamo questa classe che fa da model:
<?php
class Lang_model extends CI_Model {
public function getLang() {
if (get_cookie('LANG') == 'eng') {
$lang = array(
'allUtente' => 'User'
);
} else {
$lang = array(
'allUtente' => 'Utente'
);
}
return $lang;
}public function setDefaultLang() { // SETTA IL COOKIE LA PRIMA VOLTA CHE SI ACCEDE SE NON ESISTE
if (!get_cookie('LANG')) {
set_cookie("LANG", 'ita', time() + 2592000, 'www.sito.it', '/');
}
}public function setLang($lng) {
set_cookie("LANG", $lng, time() + 2592000, 'www.sito.it', '/');
}}
Ho tre funzioni.
Nella prima reperisco il valore del cookie, e in base a quello imposto le parole/frasi/quello che vi serve, in una o nell'altra lingua.