je teste un script concernat les cookies.
il marche nickel avec Chrome et Firefox, pas avec Safari.
il s'agit d'enregistrer un objet :
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
dans un cookie.
Malheureusement Safari me dit (console web developer) qu'il n'y a pas de
cookie associé à ma page, donc je ne peux voir son contenu de cette
manière...
Ce qui se passe :
quand je lit le cookie, Safari me retourne par :
console.log("readCookieObject() : object = "+object);
# -> readCookieObject() : object = { 'cat': 2
dons, à la suite de ce console.log j'ai un :
object = eval(" ( " + object + " ) ");
qui me donne, bien évidemment une erreur de syntaxe :
SyntaxError: Expected token '}'
Alors que ça marche très bien sur Chrome, Nightly et Opera...
Je suspecte un problème avec une espace ou la virgule.
Le code est accessible ici :
<http://82.226.217.239/js_lib/tests/cookieObject_TEST.html>
Bon, le but de la manip est d'enregistrer l'état d'une fenêtre pour la
ré-ouvrir dans le même état...
Peut-être n'est-ce pas le bon moyen en utilisant un cookie ?
--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
unbewusst.sein
Une Bévue wrote:
Je suspecte un problème avec une espace ou la virgule.
Bon, j'ai progressé, dans la partie du script lisant le cookie, j'ai : var ca = document.cookie.split(';');
si je fais un print des valeurs de ca par : console.log("readCookie() : ca["+i+"] = "+ca[i]);
je n'en ai qu'une qui vaut : readCookie() : ca[0] = org.ytho.landp.datas={ 'cat': 2
donc le problème est à l'écriture ou la lecture ???
si je fais : console.log("readCookie() : document.cookie = "+document.cookie);
ça me retourne : readCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2
donc ça ne vient pas de la fonction readCookie()
donc je regarde ce qu'enregistre createCookie() par : console.log("createCookie() : document.cookie "+name+"="+value+expires+"; path=/");
étant entendu que c'est ce que je mets dans le cookie : document.cookie = name+"="+value+expires+"; path=/";
et là, ça me donne une valeur qui me semble correcte : createCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264 }; expires=Fri, 19 Oct 2012 07:52:52 GMT; path=/
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
Une Bévue <unbewusst.sein@fai.invalid> wrote:
Je suspecte un problème avec une espace ou la virgule.
Bon, j'ai progressé, dans la partie du script lisant le cookie, j'ai :
var ca = document.cookie.split(';');
si je fais un print des valeurs de ca par :
console.log("readCookie() : ca["+i+"] = "+ca[i]);
je n'en ai qu'une qui vaut :
readCookie() : ca[0] = org.ytho.landp.datas={ 'cat': 2
donc le problème est à l'écriture ou la lecture ???
si je fais :
console.log("readCookie() : document.cookie = "+document.cookie);
ça me retourne :
readCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2
donc ça ne vient pas de la fonction readCookie()
donc je regarde ce qu'enregistre createCookie() par :
console.log("createCookie() : document.cookie "+name+"="+value+expires+"; path=/");
étant entendu que c'est ce que je mets dans le cookie :
document.cookie = name+"="+value+expires+"; path=/";
et là, ça me donne une valeur qui me semble correcte :
createCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2,
'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264 }; expires=Fri, 19
Oct 2012 07:52:52 GMT; path=/
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Je suspecte un problème avec une espace ou la virgule.
Bon, j'ai progressé, dans la partie du script lisant le cookie, j'ai : var ca = document.cookie.split(';');
si je fais un print des valeurs de ca par : console.log("readCookie() : ca["+i+"] = "+ca[i]);
je n'en ai qu'une qui vaut : readCookie() : ca[0] = org.ytho.landp.datas={ 'cat': 2
donc le problème est à l'écriture ou la lecture ???
si je fais : console.log("readCookie() : document.cookie = "+document.cookie);
ça me retourne : readCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2
donc ça ne vient pas de la fonction readCookie()
donc je regarde ce qu'enregistre createCookie() par : console.log("createCookie() : document.cookie "+name+"="+value+expires+"; path=/");
étant entendu que c'est ce que je mets dans le cookie : document.cookie = name+"="+value+expires+"; path=/";
et là, ça me donne une valeur qui me semble correcte : createCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264 }; expires=Fri, 19 Oct 2012 07:52:52 GMT; path=/
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
unbewusst.sein
Une Bévue wrote:
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
Apparemment, d'a^rès une recherche Google, "ça a eu été" un bugg connu" Matt Neubourh renvoie à une page de faq sur safari, qui n'existe plus. même aves l'application "Cocoa Cookie" je ne vois pas mon cookie, peut-être est-ce du à mon adresse : http://82.226.217.239/js_lib/tests/cookieObject_TEST.html _______^^^^^^^^^^^^^^^___________________________________
???? qui est mon localhost ???
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
Une Bévue <unbewusst.sein@fai.invalid> wrote:
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
Apparemment, d'a^rès une recherche Google, "ça a eu été" un bugg connu"
Matt Neubourh renvoie à une page de faq sur safari, qui n'existe plus.
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,
peut-être est-ce du à mon adresse :
http://82.226.217.239/js_lib/tests/cookieObject_TEST.html
_______^^^^^^^^^^^^^^^___________________________________
????
qui est mon localhost ???
--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Seule hypothèse : Safari n'aime pas les "," de mon objet ???
Apparemment, d'a^rès une recherche Google, "ça a eu été" un bugg connu" Matt Neubourh renvoie à une page de faq sur safari, qui n'existe plus. même aves l'application "Cocoa Cookie" je ne vois pas mon cookie, peut-être est-ce du à mon adresse : http://82.226.217.239/js_lib/tests/cookieObject_TEST.html _______^^^^^^^^^^^^^^^___________________________________
???? qui est mon localhost ???
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
unbewusst.sein
Une Bévue wrote:
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,
Si je farfouille dans ~/Library/Cookies, je vois des fichiers : com.apple.appstore.plist com.apple.appstore.plist - corrupt Cookies.binarycookies Cookies.plist Cookies.plist_tmp_217_0.dat
et ni dans Cookies.plist ni dans Cookies.plist_tmp_217_0.dat il n'y a de trace de mon cookie, repéré par son nom "org.ytho.landp.datas"
je ne sais pas lire les "Cookies.binarycookies"...
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
Une Bévue <unbewusst.sein@fai.invalid> wrote:
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,
Si je farfouille dans ~/Library/Cookies, je vois des fichiers :
com.apple.appstore.plist
com.apple.appstore.plist - corrupt
Cookies.binarycookies
Cookies.plist
Cookies.plist_tmp_217_0.dat
et ni dans Cookies.plist ni dans Cookies.plist_tmp_217_0.dat
il n'y a de trace de mon cookie, repéré par son nom
"org.ytho.landp.datas"
je ne sais pas lire les "Cookies.binarycookies"...
--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,
Si je farfouille dans ~/Library/Cookies, je vois des fichiers : com.apple.appstore.plist com.apple.appstore.plist - corrupt Cookies.binarycookies Cookies.plist Cookies.plist_tmp_217_0.dat
et ni dans Cookies.plist ni dans Cookies.plist_tmp_217_0.dat il n'y a de trace de mon cookie, repéré par son nom "org.ytho.landp.datas"
je ne sais pas lire les "Cookies.binarycookies"...
-- « Si tous ceux qui n'ont rien n'en demandaient pas plus, il serait bien facile de contenter tout le monde. » (Coluche)
Bol
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}; dans un cookie.
encode les cookies comme les urls var=escape(data)
A+ Bol
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
dans un cookie.
encode les cookies comme les urls
var=escape(data)
Okidoki, merci beaucoup, je n'utilise QUE UTF-8...
SAM
Le 20/10/11 09:28, Une Bévue a écrit :
je teste un script concernat les cookies. il marche nickel avec Chrome et Firefox, pas avec Safari. il s'agit d'enregistrer un objet : var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra : "datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" j'imagine ? ou même, simplement : "{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" qu'à la relecture on analysera par : var datas = eval(dataDeMonCookie); où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
* Portugais - détecté * Anglais * Français * Espagnol
* Anglais * Français * Espagnol
<javascript:void(0);>
Le 20/10/11 09:28, Une Bévue a écrit :
je teste un script concernat les cookies.
il marche nickel avec Chrome et Firefox, pas avec Safari.
il s'agit d'enregistrer un objet :
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra :
"datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
j'imagine ?
ou même, simplement :
"{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
qu'à la relecture on analysera par :
var datas = eval(dataDeMonCookie);
où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
Le code est accessible ici :
<http://82.226.217.239/js_lib/tests/cookieObject_TEST.html>
ou bien c'est seulement chez toi
ou bien ça a été réparé
car ça fonctionne pour moi : <http://cjoint.com/?0Jypsi52Huy>
--
Stéphane Moriaux avec/with iMac-intel
* Portugais - détecté
* Anglais
* Français
* Espagnol
je teste un script concernat les cookies. il marche nickel avec Chrome et Firefox, pas avec Safari. il s'agit d'enregistrer un objet : var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra : "datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" j'imagine ? ou même, simplement : "{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" qu'à la relecture on analysera par : var datas = eval(dataDeMonCookie); où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
* Portugais - détecté * Anglais * Français * Espagnol
* Anglais * Français * Espagnol
<javascript:void(0);>
unbewusst.sein
SAM wrote:
Le 20/10/11 09:28, Une Bévue a écrit : > je teste un script concernat les cookies. > il marche nickel avec Chrome et Firefox, pas avec Safari. > il s'agit d'enregistrer un objet : > var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra : "datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
oui : "org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" mais j'ajoute une propriété 'sum' égale à la somme des entiers (pour vérif pollution), ce qui donne dans le k + haut : "org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264}" si la "sum" est réputée fausse, alors je retourne null.
j'imagine ? ou même, simplement : "{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" qu'à la relecture on analysera par : var datas = eval(dataDeMonCookie); où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
oui, au lieu d'envoyer une string avec des "," et des " ", j'envoie avec encodeURI. et là, ça roule avec tous les browsers testés (ff nightly, saf, chrome, opera). euh, j'ai aussi ajouté une "gestion" du path automatique :
le path sera mis à "dossier_niv_1", c'est pour éviter des collisions car j'ai deux dossiers aux contenus quasi identiques "landp" et landp_public", seules les bases de données différent.
-- « Il faut bien agiter le peuple avant de s'en servir » (Talleyrand)
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Le 20/10/11 09:28, Une Bévue a écrit :
> je teste un script concernat les cookies.
> il marche nickel avec Chrome et Firefox, pas avec Safari.
> il s'agit d'enregistrer un objet :
> var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra :
"datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
oui :
"org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid':
244}"
mais j'ajoute une propriété 'sum' égale à la somme des entiers (pour
vérif pollution), ce qui donne dans le k + haut :
"org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244,
'sum': 264}"
si la "sum" est réputée fausse, alors je retourne null.
j'imagine ?
ou même, simplement :
"{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
qu'à la relecture on analysera par :
var datas = eval(dataDeMonCookie);
où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
oui.
> Le code est accessible ici :
> <http://82.226.217.239/js_lib/tests/cookieObject_TEST.html>
ou bien c'est seulement chez toi
ça déconnait UNIQUEMENT SUR Safari...
ou bien ça a été réparé
oui, au lieu d'envoyer une string avec des "," et des " ", j'envoie avec
encodeURI.
et là, ça roule avec tous les browsers testés (ff nightly, saf, chrome,
opera).
euh, j'ai aussi ajouté une "gestion" du path automatique :
si la page est :
http://mon.domain.qqc/dossier_niv_1/ossier_niv_2/etc/mon_fichier.qqc
le path sera mis à "dossier_niv_1", c'est pour éviter des collisions car
j'ai deux dossiers aux contenus quasi identiques "landp" et
landp_public", seules les bases de données différent.
var path=document.location.href.split("/")[3];
car ça fonctionne pour moi : <http://cjoint.com/?0Jypsi52Huy>
oui.
--
« Il faut bien agiter le peuple avant de s'en servir »
(Talleyrand)
Le 20/10/11 09:28, Une Bévue a écrit : > je teste un script concernat les cookies. > il marche nickel avec Chrome et Firefox, pas avec Safari. > il s'agit d'enregistrer un objet : > var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
donc le cookie contiendra : "datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}"
oui : "org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" mais j'ajoute une propriété 'sum' égale à la somme des entiers (pour vérif pollution), ce qui donne dans le k + haut : "org.ytho.landp.datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264}" si la "sum" est réputée fausse, alors je retourne null.
j'imagine ? ou même, simplement : "{'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244}" qu'à la relecture on analysera par : var datas = eval(dataDeMonCookie); où 'dataDeMonCookie' est la partie du cookie contenant l'info véhiculée
oui, au lieu d'envoyer une string avec des "," et des " ", j'envoie avec encodeURI. et là, ça roule avec tous les browsers testés (ff nightly, saf, chrome, opera). euh, j'ai aussi ajouté une "gestion" du path automatique :
le path sera mis à "dossier_niv_1", c'est pour éviter des collisions car j'ai deux dossiers aux contenus quasi identiques "landp" et landp_public", seules les bases de données différent.