Fonction PHP setrawcookie()
Exemple
L'exemple suivant crée un cookie avec PHP. Le cookie est nommé "utilisateur" et la valeur sera "John Doe". La valeur du cookie ne sera pas encodée en URL. Le cookie expirera après 30 jours (86400 * 30). L'utilisation de "/" signifie que le cookie est disponible sur l'ensemble du site Web (sinon, sélectionnez le répertoire que vous préférez) :
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
echo "Cookie is set.";
?>
</body>
</html>
?>
Définition et utilisation
La fonction setrawcookie() définit un cookie (sans codage d'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 cookies.
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 coder automatiquement en URL la valeur du cookie lors de l'envoi et la décoder automatiquement lors de la réception, utilisez plutôt la fonction setcookie() .
Syntaxe
setrawcookie(name, value, expire, path, domain, secure);
Valeurs des paramètres
Parameter | Description |
---|---|
name | Required. Specifies the name of the cookie |
value | Optional. Specifies the value of the cookie |
expire | Optional. Specifies when the cookie expires. The value: time()+86400*30, will set the cookie to expire in 30 days. If this parameter is not set, the cookie will expire at the end of the session (when the browser closes) |
path | Optional. Specifies the server path of the cookie. If set to "/", the cookie will be available within the entire domain. If set to "/php/", the cookie will only be available within the php directory and all sub-directories of php. The default value is the current directory that the cookie is being set in |
domain | Optional. Specifies the domain name of the cookie. To make the cookie available on all subdomains of example.com, set domain to ".example.com". Setting it to www.example.com will make the cookie only available in the www subdomain |
secure | Optional. Specifies whether or not the cookie should only be transmitted over a secure HTTPS connection. TRUE indicates that the cookie will only be set if a secure connection exists. Default is FALSE. |
Détails techniques
Valeur de retour : | VRAI en cas de succès. FAUX en cas d'échec |
---|---|
Version PHP : | 5+ |
Plus d'exemples
Exemple
Récupérez la valeur du cookie nommé "user" (à l'aide de 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 "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Exemple
Pour modifier un cookie, il suffit de (re)définir le cookie à l'aide de 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 "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_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]);
// empty value and expiration one hour before
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Exemple
Créez un petit script qui vérifie si les cookies sont activés. Essayez d'abord de créer un cookie de test avec la fonction setrawcookie(), puis comptez la variable tableau $_COOKIE :
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled";
} else {
echo "Cookies are disabled";
}
?>
</body>
</html>
❮ Référence réseau PHP