set_cookie

Mattepuffo's logo
Gestire i cookie con CodeIgniter

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.