“Miscellanées”

movable type

Movable Type [2.6.x] : problème de cookie

[MT version 2.6.x]

La fonction “se souvenir de mes informations”, dans le formulaire des commentaires, fait appel à un cookie qui stocke le nom, l’adresse courriel et l’URL du site Web. Cela évite au visiteur d’avoir à remplir de nouveau ces champs la fois suivante.

Le javascript gérant les cookies du template “Individual Entry Archive” enregistre le chemin complet (Path). Ainsi, un cookie enregistré sur la page http://www.xxx.net/blog/archives/000132.html ne fonctionnera que pour les pages issues du répertoire blog/archives.

Mais, sur mon carnet web, les archives individuelles sont stockées dans des dossiers distincts, comme “embruns.net/blogosphere” et “embruns.net/notes_du_carnet”.

Cela pouvait donner, par exemple, le cookie suivant :

       Domain
       .embruns.net
       Expires
       2004-12-03T16:19:51Z
       Name
       mtcmtauth
       Path
       /blogosphere
       Value
       Laurent

Résultat, la fonction “se souvenir de mes informations” ne marchait alors plus que pour les billets de la catégorie “blogosphère” !

Si vous rencontrez ce problème (lié à des archives individuelles stockées dans des dossiers séparés dans l’arborescence), il faut modifier cette partie du javascript dans le template “Individual Entry Archive” :

function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    setCookie(’mtcmtauth’, f.author.value, now, ’’, HOST, ’’);
    setCookie(’mtcmtmail’, f.email.value, now, ’’, HOST, ’’);
    setCookie(’mtcmthome’, f.url.value, now, ’’, HOST, ’’);
}
par :
function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    setCookie(’mtcmtauth’, f.author.value, now, ’/’, HOST, ’’);
    setCookie(’mtcmtmail’, f.email.value, now, ’/’, HOST, ’’);
    setCookie(’mtcmthome’, f.url.value, now, ’/’, HOST, ’’);
}

C’est ainsi désormais la racine de votre site qui est enregistré dans le cookie, et non le chemin.

1. Le 4 décembre 2003,
François Granger

Merci du tuyau.

Tu pourrai mettre l’article complet dans ton fil RSS, s’il te plait ;-)

2. Le 6 décembre 2003,
mat

Mmm, mais quel est l’interet de faire ca en javascript ? De toutes facons ca ne sert que quand un gars “submit” u formulaire, donc autant le faire coté serveur, non ?

3. Le 14 décembre 2003,
aqb

Petit test de la mémorisation des cookies sous safari. (que tu peux bien entendu effacer sans vergogne)

4. Le 14 décembre 2003,
aqb

C’est une conspiration! Cela marche sous Safari, mais pas sur le PC (IE, ni a priori FireBird). Tu aimes le mac mais tout de même ;)))

5. Le 18 décembre 2003,
Laurent

Test…

6. Le 18 décembre 2003,
Laurent

Test.

7. Le 11 février 2005,
¥€$

Ouaih, test…

8. Le 11 février 2005,
¥€$

Marche po ?

Blah ?