Variables externes à PHP
  
  
  
  
   Cookies HTTP
   
   
    PHP supporte les cookies HTTP de manière totalement
    transparente, comme défini dans la
    » RFC 6265. Les cookies
    sont un mécanisme permettant de stocker des données
    sur la machine cliente à des fins d'identification de
    l'utilisateur. Il est possible d'établir un cookie grâce à
    la fonction setcookie(). Les cookies
    font partie intégrante des en-têtes HTTP et donc
    la fonction setcookie() doit être
    appelée avant que le moindre affichage ne soit envoyé
    au navigateur. C'est la même restriction que pour la fonction
    header(). Les données contenues dans les cookies
    sont alors disponibles dans les tableaux de cookies appropriés, comme
    $_COOKIE mais aussi $_REQUEST.
    Lisez la page de la documentation sur la fonction
    setcookie() pour plus de détails ainsi que des exemples.
   
    Note: 
     
      Depuis PHP 7.2.34, 7.3.23 et 7.4.11, respectivement, les
      noms des cookies entrants ne sont plus
      url-décodés, et ce, pour des raisons de sécurité.
     
    
   
   
    Si plusieurs valeurs peuvent être assignées à un seul
    cookie, ils peuvent être assignées sous forme de tableau.
    Par exemple :
   
   
   
   
   
    Cela va créer deux cookies distincts bien que MyCookie
    est maintenant un simple tableau dans le script. Si seulement un cookie
    doit être défini avec plusieurs valeurs, utilisez la fonction
    serialize() ou explode()
    sur la première valeur.
   
   
   
    Il est à noter qu'un cookie remplace le cookie
    précédent par un cookie de même nom tant que
    le chemin ou le domaine sont identiques.
    Donc, pour une application de panier,
    un compteur et l'incrémenter au fur et à mesure. C'est-à-dire :
   
   
   
    Exemple #4 Exemple avec setcookie()
    
<?php
if (isset($_COOKIE['compte'])) {
    $compte = $_COOKIE['compte'] + 1;
} else {
    $compte = 1;
}
setcookie('compte', $compte, time()+3600);
setcookie("Panier[$compte]", $item, time()+3600);
?>
     
    
   
   
  
  
   Cas des points dans les noms de variables
   
   
    Typiquement, PHP ne modifie pas les noms des variables lorsqu'elles
    sont passées à un script. Cependant, il faut noter que
    les points (.) ne sont pas autorisés dans les noms de variables
    PHP. Pour cette raison, jetez un œil sur :
    
<?php
  $varname.ext;  /* nom de variable invalide */
?>
     
    Dans ce cas, l'analyseur croit voir la variable nommée
    
$varname, suivie par l'opérateur de concaténation,
    et suivie encore par la chaîne sans guillemets
    (une chaîne sans guillemets et qui n'a pas de signification
    particulière). Visiblement, ce n'est pas ce qu'on attendait...
   
   
   
    Pour cette raison, il est important de noter que PHP remplacera
    automatiquement les points des noms de variables entrantes par
    des soulignés.
   
   
   
  
  
   Détermination du type des variables
   
   
    Parce que PHP détermine le type des variables et
    les convertit (généralement) comme il faut,
    ce n'est pas toujours le type de variable que vous souhaitez.
    PHP inclut des fonctions permettant de déterminer le
    type d'une variable :
    gettype(),
    is_array(),
    is_float(),
    is_int(),
    is_object() et
    is_string().
    Lisez également le chapitre sur les
    types.
   
    
     HTTP étant un protocole texte, la plupart, sinon tous, le contenu qui vient 
     dans les tableaux Superglobaux, 
     comme $_POST et $_GET restera en tant 
     que chaînes. PHP n'essaiera pas de convertir des valeurs en un type spécifique.
     Dans l'exemple ci-dessous, $_GET["var1"] contiendra la 
     chaîne "null" et $_GET["var2"], la chaîne "123".
     
/index.php?var1=null&var2=123