J'ai essayé
$cookie = $_COOKIE['cookie'];
si le cookie n'est pas défini, cela me donnera une erreur
PHP ERROR
Undefined index: cookie
Comment pourrais-je l'empêcher de me donner une variable vide>
Utilisez isset
pour voir si le cookie existe.
if(isset($_COOKIE['cookie'])){
$cookie = $_COOKIE['cookie'];
}
else{
// Cookie is not set
}
Vous pouvez utiliser array_key_exists à cette fin comme suit:
$cookie = array_key_exists('cookie', $_COOKIE) ? $_COOKIE['cookie'] : null;
En fonction de vos besoins.
// If not set, $cookie = NULL;
if (isset($_COOKIE['cookie'])) { $cookie = $_COOKIE['cookie']; }
ou
// If not set, $cookie = '';
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : '';
ou
// If not set, $cookie = false;
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : false;
Références:
Essaye ça:
$cookie = isset($_COOKIE['cookie'])?$_COOKIE['cookie']:'';
//checks if there is a cookie, if not then an empty string
Exemple non mentionné dans les réponses: supposons que vous définissiez un cookie pendant 60 secondes si les conditions sont réunies:
if ($some_condition == $met_condition) {
setcookie('cookie', 'some_value', time()+ 60, "/","", false);
}
Techniquement, nous devons vérifier qu’il est réglé ET qu’il n’est pas expiré ou il émettra des avertissements, etc.:
$cookie = ''; //or null if you prefer
if (array_key_exists('cookie', $_COOKIE) && isset($_COOKIE['cookie'])) {
$cookie = $_COOKIE['cookie'];
}
Vous voudriez vérifier de manière à ce que les cookies expirés ne soient pas utilisés et c'est défini, l'exemple ci-dessus pourrait évidemment ne pas toujours définir le cookie, etc. Array_key_exists consiste principalement à empêcher les avertissements d’être affichés dans les journaux, mais cela ne fonctionnerait pas.