PHP setrawcookie() Fonction
Exemple
L'exemple suivant crée un cookie avec PHP. Le cookie est nommé "user" et sa valeur sera "John Doe". La valeur du cookie ne sera pas encodée en URL. Le cookie expirera après 30 jours (86400 * 30). En utilisant "/", cela signifie que le cookie est disponible sur l'ensemble du site web (sinon, sélectionnez le répertoire de votre choix) :
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 jour
?>
<html>
<body>
<?php
echo "Le cookie est défini.";
?>
</body>
</html>
?> Définition et Utilisation
La fonction setrawcookie() définit un cookie (sans encodage URL) à envoyer avec le reste des en-têtes HTTP.
Un cookie est souvent utilisé pour identifier un utilisateur. Un cookie est un petit fichier que le serveur intègre sur l'ordinateur de l'utilisateur. Chaque fois que le même ordinateur demande une page avec un navigateur, il enverra également le cookie. Avec PHP, vous pouvez à la fois créer et récupérer des valeurs de cookie.
Le nom du cookie est automatiquement attribué à une variable du même nom. Par exemple, si un cookie a été envoyé avec le nom "user", une variable est automatiquement créée appelée $user, contenant la valeur du cookie.
Remarque : La fonction setrawcookie() doit apparaître AVANT la balise <html>.
Remarque : Pour encoder automatiquement la valeur du cookie lors de l'envoi, et décoder automatiquement lors de la réception, utilisez la fonction setcookie() à la place.
Syntaxe
setrawcookie( name, value, expire, path, domain, secure ); Valeurs des Paramètres
| Paramètre | Description |
|---|---|
| name | Requis. Spécifie le nom du cookie |
| value | Optionnel. Spécifie la valeur du cookie |
| expire | Optionnel. Spécifie quand le cookie expire. La valeur : time()+86400*30, définira le cookie pour expirer dans 30 jours. Si ce paramètre n'est pas défini, le cookie expirera à la fin de la session (lorsque le navigateur se ferme) |
| path | Optionnel. Spécifie le chemin du serveur du cookie. S'il est défini sur "/", le cookie sera disponible dans l'ensemble du domaine. S'il est défini sur "/php/", le cookie ne sera disponible que dans le répertoire php et tous les sous-répertoires de php. La valeur par défaut est le répertoire actuel dans lequel le cookie est défini |
| domain | Optionnel. Spécifie le nom de domaine du cookie. Pour rendre le cookie disponible sur tous les sous-domaines de example.com, définissez le domaine sur ".example.com". Le définir sur www.example.com rendra le cookie disponible uniquement dans le sous-domaine www |
| secure | Optionnel. Spécifie si le cookie doit être transmis uniquement sur une connexion HTTPS sécurisée. TRUE indique que le cookie ne sera défini que si une connexion sécurisée existe. La valeur par défaut est FALSE. |
Détails Techniques
| Valeur de Retour : | TRUE en cas de succès. FALSE en cas d'échec |
|---|---|
| Version PHP : | 5+ |
Plus d'Exemples
Exemple
Récupérez la valeur du cookie nommé "user" (en utilisant la variable globale $_COOKIE). Utilisez également la fonction isset() pour savoir si le cookie existe :
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Le cookie nommé '" . $cookie_name . "' n'existe pas !";
} else {
echo "Le cookie est nommé : " . $cookie_name . "<br>La valeur est : " . $_COOKIE[$cookie_name];
}
?>
</body>
</html> Exemple
Pour modifier un cookie, il suffit de le redéfinir en utilisant la fonction setrawcookie() :
<?php
$cookie_name = "user";
$cookie_value = "Alex";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Le cookie nommé '" . $cookie_name . "' n'existe pas !";
} else {
echo "Le cookie est nommé : " . $cookie_name . "<br>La valeur est : " . $_COOKIE[$cookie_name];
}
?>
</body>
</html> Exemple
Pour supprimer un cookie, utilisez la fonction setrawcookie() avec une date d'expiration dans le passé :
<?php
$cookie_name = "user";
unset($_COOKIE[$cookie_name]);
// valeur vide et expiration une heure avant
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Le cookie 'user' est supprimé.";
?>
</body>
</html> Exemple
Créez un petit script qui vérifie si les cookies sont activés. D'abord, essayez de créer un cookie de test avec la fonction setrawcookie(), puis comptez la variable de tableau $_COOKIE :
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Les cookies sont activés";
} else {
echo "Les cookies sont désactivés";
}
?>
</body>
</html>