Rien à voir avec ´post´, selon les spec´ http cookie, le header doit être comme ceci:
Set-Cookie: $NAME=$VALUE; expires=$DATE;
path=$PATH; domain=$DOMAIN_NAME; secure CRLF CRLF
$NAME : Le nom du cookie
$VALUE : Sa valeur...
$DATE : La date d´expiration, sous ce format: Wdy, DD-Mon-YYYY HH:MM:SS GMT
$PATH : Ben le dossier du programme ou du site
( secure) : pour SSL
--------------------
Exemple en C/CGI:
--------------------
char *_name = " usid";
char *_value = " trouduc:monpass";
char *_expire = " Man, 10-Jan-2030 00:00:00 GMT";
char *_path = " /";
char *_domain = " .tonsite.com";
/ * On envoi les pepites : ) */
printf ( "Set-Cookie: %s=%s; expires=%s; path=%s; domain=%s; secure\n\n", _name, _value, _expire, _path, _domain);
/ * Si l´utilisateur a des cookie pour ce domaine */
if ( getenv ( "HTTP_COOKIE"))
{
/ * Header MIME */
printf ( "Content-type: text/html\n");
printf ( "<b>Vous avez des cookies pr ce server</b>");
}
/ *
Pour récupérer tout les cookie de l´utilisateur sur ce domaine:
-> char *_cookies = getenv ( "HTTP_COOKIE");
Il faut parser la chaine pour récupérer la valeur d´un cookie spécifique...
-> while ( *_cookies) { . ..
--------------------
Exemple en PHP
--------------------
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
< ?php
$value = ´pwet´;
setcookie("_test_", $value, time()+3600); / / expire dans une heure
/ / Afficher la valeur d´un cookie
echo $_COOKIE ["_test_"];
/ / Afficher tous les cookies
print_r ( $_COOKIE);
? >
--------------------
Exemple en HTML
--------------------
< !-- Pas super, on se sert du browser -->
< HEAD>
< META HTTP-EQUIV="Set-Cookie"
CONTENT="$NAME=$VALUE; expires=$DATE; path=$PATH; domain=$DOMAIN_NAME; secure">
< /HEAD>
< !-- Impossible de les récupérer par contre -->
---------------------
Exemple en JavaScript
---------------------
/ / Pareil, c´est le browser qui taff
var _expire = new Date ( );
var _time_ = expire.getTime ( ) + 3600; / / Une heure
_expire.setTime ( _time_);
document.cookie = " _test_=pwet; expires=" + expire.toGMTString ( );
/ / Pour récupérer un cookie:
function get_cookie ( cookie_name)
{
var id = document.cookie.indexOf ( cookie_name);
if ( id > = 0)
{
var s = ( document.cookie.indexOf ( "=", id) + 1);
var e = document.cookie.indexOf( " ;", index);
if ( e < 0) e = document.cookie.length;
return unescape ( document.cookie.substring ( s, e));
}
}
return null;
}
Pour d´autres langages via une CGI, c´est la même procedure que celle du premier exemple, à moins d´utiliser une librairie comme la lcgi en Perl...
Bref, maintenant, t´es un pro du cookie ; )
PS: J´ai écrit tout ça à l´arrache, sans rien tester. A toi de corriger les erreurs si il y´en a =)