<?php
 define("WEB_EOL","<br/>");

 class CKPersonne {
   // -- Les propriétés  --
   private $_Nom           ;
   private $_Prenom        ;
   private $_Age           ;
   private $_Horodatage    ;
   // -- Constructeur --
   function __construct($n,$p,$a,$h)
   { $this->_Nom        = $n ;
     $this->_Prenom     = $p ;
     $this->_Age        = $a ;
     $this->_Horodatage = $h ;
   }
   // ------------------------------  
   // -- __get et __set méthodes magiques --
   public function __get($propriete) {
     if (property_exists($this, $propriete)) {
       return $this->$propriete;
     }
   }
   // ------------------------------  
   public function __set($propriete, $valeur) {
     if (property_exists($this, $propriete)) {
       if ($propriete=="_Age") {
           $this->_Age=intval(trim($valeur));
       }   
       else {
         $this->$propriete = trim($valeur);
       }   
     }   
   }
 }
 // Calcul de l'horodatage (fin de vie du cookie)
 $DureeEnSecondes=365*24*3600; // 1 an
 $Horodatage=time()+$DureeEnSecondes;
 // Création objet CKPersonne
 $UnePersonne = new CKPersonne("Dupont","Jean",22,$Horodatage);
 // Création du cookie Objet
 setcookie('PersonneObj',serialize($UnePersonne),$Horodatage);
 ?> 
 <!DOCTYPE html>
 <html>
  <head> <!-- Entête HTML -->
    <meta charset="utf-8" />
    <title>Gestion des cookies</title>
  </head>
  <body>
  <?php
  echo "Cookies positionn&eacute;s pour  : ".WEB_EOL;
  echo "$UnePersonne->_Nom - $UnePersonne->_Prenom - $UnePersonne->_Age ans".WEB_EOL;
  echo "Horodatage : ".$Horodatage.WEB_EOL;
  ?>
 </body>
</html>
