cookie

Mattepuffo's logo
Identificare i cookie installati dai siti web

Identificare i cookie installati dai siti web

Con questa nuova GDPR, è molto importante capire quali cookie vengono installati dai siti web.

Ed è importante anche per i programmatori, soprattutto se usano CMS (tipo Wordpress) che hanno comportamenti non sempre trasparenti.

Mattepuffo's logo
Sito multilingua in PHP

Sito multilingua in PHP

Oggi vi propongo un modo per gestire il multilingua usando il PHP.

Non è detto che sia la migliore, ma mi ci trovo bene e la trovo abbastanza facile da gestire.

Prima di tutto creiamo una directory apposita (ad esempio lingue) con dentro un file che chiameremo gestore.php:

if (!isset($_COOKIE['LANG'])) {
    setcookie("LANG", 1, time() + 2592000, '/');
}

$lingua = $_COOKIE['LANG'];

switch ($lingua) {
    case 1:
        include_once "it.php";
        break;
    case 2:
        include_once "en.php";
        break;
    default :
        include_once "it.php";
        break;
}

Per memorizzare qual'è l'ultima lingua scelta useremo i cookies.

Prima controlliamo che non sia settato, e in caso lo settiamo con un valore di default (l'italiano).

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.

Mattepuffo's logo
Gestire i cookie con Javascript

Gestire i cookie con Javascript

Piccola premessa: a mio modo di vedere è sempre meglio gestire i cookie lato server (Asp.NET, PHP, Java,....).

Però a volte capita che si debba gestirli con Javascript (magari delegando solo informazioni meno importanti).

Vediamo tre funzioni da mettere nell'header.

La prima serve per settarli:

function setCookie(name, value, expiredays, path, domain, secure) {
    var expires = new Date();
    expires.setDate(expires.getDate() + expiredays);
    var cookieString = name + "=" + escape(value) + ((expires) ? ";expires=" + expires.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : "");
    document.cookie = cookieString;
}

Alla funzione passiamo un pò di parametri che con i quali costruiremo il cookie (var cookieString).