PHP
20 sept. 2001 à 21:21
Je sais que tu as trouvé une réponse mais voici comment faire pour tous ceux et celles qui préférent Php.
Ecrire un cookie en Php :
____________________
Syntaxe complète :
setcookie(string name, string value, string expire, string path, string domain, string secure);
name : nom du cookie
ex : "ccm"
value : valeur du cookie
ex : "comment ca marche"
expire : date d'expiration du cookie (si non spécifié le cookie expire à la fin de la session)
ex : time()+3600 -> le cookie expire danas une heure
(cette syntaxe est propre à Php)
path : chemin d'accès jusqu'au répertoire à partir duquel le cookie est valide.
ex : "/public/"
domaine : domaine pour lequel le cookie est valide
ex : "commentcamarche.net"
secure : indique si le cookie doit être transmis par connexion sécurisée de type HTTPS
(Là j 'sais pas trop ce qu'il faut mettre j'avoue ...)
Ex :
<?php
$ccm="comment ca marche ?";
setcookie("ccm", $ccm, time()+3600, "/public/", "commentcamarche.net");
?>
Mais le + souvent on se limite à :
<?php
$ccm="comment ca marche ?";
setcookie("ccm", $ccm, time()+3600, "/");
?>
ATTENTION : l'instruction setcookie() doit apparaître au tout début de la page html avant la balise <HTML> elle-même !!!!
Même un espace peut engendrer une erreur donc bien écrire :
<?php
...
setcookie(...);
...
?>
<html>
...
</html>
Lire un cookie en Php :
__________________
<?php
// Si le cookie ccm existe sur le poste du client alors la variable
// $ccm prend directement la valeur du cookie
// Ainsi le code suivant affiche "comment ca marche ?"
echo $ccm
?>
Si on veut être sûr qu'il s'agit bien d'un cookie on peut utiliser la syntaxe suivante :
<?php
$cookie_ccm=$HTTP_COOKIE_VARS["ccm"] ;
echo $cookie_ccm;
?>
Effacer un cookie :
_______________
Il suffit de le déclarer sans valeur .
Ex:
<?php
setcookie("ccm");
?>
Supprime le cookie ccm.
Simple non ?
On peut même utiliser des tableaux : le délire !
Ecriture avec tableau :
<?php
$ccm[prenom]="Super";
$ccm[nom]="Site";
setcookie("ccm[prenom]",$ccm[prenom],time()+9999999,"/");
setcookie("ccm[nom]",$ccm[nom],time()+9999999,"/");
?>
Lecture :
<?php
echo $ccm[prenom]."-".$ccm[nom];
?>
Affichera "Super-Site" Yeaahh !!!
En espèrant vous avoir éclairé sur the cookie factory en Php
@+
Philippe
response.setHeader("Set-Cookie","login="+str_login+"["+str_passwd+"]; path=/;expires="+aday.getTime().toString());
lire dans un cookie :
Cookie[] cookies = request.getCookies();
String value = "";
if (cookies != null)
{
checked=true;
for (int i=0 ; i<cookies.length ; i++)
{
if (cookies[i].getName().equals("login"))
{
try{
str_login = cookies[i].getValue().substring(0,cookies[i].getValue().indexOf("["));
str_passwd = cookies[i].getValue().substring(cookies[i].getValue().indexOf("[")+1,cookies[i].getValue().indexOf("]"));
}catch(Exception e){
str_login="";
str_passwd="";
}
}
}
}
Excuses moi, je n'ai pas le courage de mettre en ordre le code ;-))
Pour lire dans un cookie, on utilise l'objet Cookie... on pourrais l'utiliser pour écrire mais je te conseil de faire comme décrit ci dessus, en particulier pour fixer la durée de vie...
Le problème est que l'objet Cookie n'est pas compatible avec tous les navigateurs (même Sun l'avoue)... ça ne fonctionne donc pas forcémment avec Netscape... étonnant non ?
Désolé que tu te sois pris la tête, mais j'ai trouvé la solution sur un autre forum: j'etais assez préssée... :-)
Mais merci quand meme! t'es adorable!
Castor