Bonjour à tous,
Je ne sais pas si le problème viens de WAMP ou non, mais je n'arrive absolument pas à créer un seul cookie, ou à en supprimer un sur WAMP en local.
Voilà mes bouts de code de création de cookie
/**
* Permet de créer un ou plusieurs cookies récursivement
* @param $name : Nom du cookie (ou tableau/objet de cookie, indéxé par les variables de cette fonction)
* @param $value : Valeur du cookie
* @param $expire : Durée de vie du cookie en jours
* @param $path : Chemin ou le cookie est actif
* @param $domain : Domain ou le cookie est actif
* @return True/False : True si tout les cookies ont été créés, sinon False
**/
function setCookies($name, $value = '', $expire = 0, $path = '/', $domain = BASE_URL) {
$complet = true;
// Si c'est un tableau ou un objet de cookie on applique récusivement pour tout les sous ensembles
if(is_array($name) || is_object($name)) {
// Modele d'un tableau de cookie par défaut
$default = array(
'name' => 'defaultCookieName',
'value' => $value,
'expire' => $expire,
'path' => $path,
'domain' => $domain
);
// On parcours chaque cookie de l'ensemble
foreach($name as $cookie) {
// On complète les possibles données manquantes
$cookie = array_merge($default, $cookie);
// On créer le cookie
$complet &= setCookies($cookie'name'], $cookie'value'], $cookie'expire'], $cookie'path'], $cookie'domain']);
}
}
// Sinon c'est un cookie seul
else {
// Si $expire vaut 0, l'expiration doit être immédiate
if($expire == 0) {
$expire = 1;
}
// On convertis la durée de vie en jours du cookie, en seconde à partir du timestamp
else {
$expire = time() + 3600 * 24 * $expire;
}
// On créer le cookie
$complet &= setcookie($name, $value, $expire, $path, $domain);
}
return $complet;
}
Et maintenant le code d'appel de ma fonction
$name = 'testNom';
$value = 'testValeur';
$expire = 7;
setCookies($name, $value, $expire);
setCookies me retourne bien "True", mais dans mes cookies, je ne vois jamais mon cookie =S
Est-ce un problème lié à WAMP ?
Merci d'avance.
Et bien voilà, merci ^^
Visiblement, pour ce genre de problème, il vaut mieux définir la variables $path = '/' et $domain = '' pour éviter tout problème de création de cookie =D
J'ai bien vérifier, tout est bon, j'ai même fais le test avec un simple setcookie() et non plus avec ma fonction plus complexe.
setcookie('test', 'test', time()+3600);
Me créer bien un cookie,
et
setcookie('test', '', 1);
Me le détruit bien.
Cependant, ma fonction continue de ne toujours pas marcher =S
Edit:
Incompréhensible, j'ai fais un test, au sein de ma fonction setCookies() j'ai mis 2 lignes
setcookie($name, $value, $expire);
setcookie('test2', 'test2', time()+3600);
La première ligne ne me créer pas de cookie, la deuxième si, pour info un echo des 3 variables ($name, $value et $expire) me donnent :
test
test
1340730757
ReEdit:
Finalement la première ligne me créer aussi bien un cookie maintenant, je ne sais pas pourquoi, mais sa marche, un autre problème
setcookie($name, $value, $expire, $path, $domain);
Ne marche réellement pas ^^ mais je pense que sa viens de la variable $domain, je vais voir ;)