javascript: ecrire ou lire un cookie en mémoire - HTML/CSS - Programmation
Marsh Posté le 01-03-2007 à 12:36:38
Personne ne sait comment on se sert de cette instruction?
document.cookie
Marsh Posté le 01-03-2007 à 16:24:08
Si j'ai pas été assez clair dans ce que je cherche à faire pour que vous puissiez m'aider, demandez moi des précisions j'apporterai les commentaires en conséquence si c'est possible
Marsh Posté le 01-03-2007 à 16:51:52
merci anapajari pour ton lien j'ai lu le contenu ca ressemble a des choses que j'avais lu par ailleurs et que j'ai déjà essayé
j'avais ecris ca dans mon code de la page 1
document.cookie = "monsite = toto"; et ensuite comem ca marchait pas j'ai aussi essayé ca
document.cookie = "monsite = " +toto;
dans la page2 planete = document.cookie;
tout ca ne donne rien sans trop que j'en saisisse les raisons
est ce que ce que je lie au lien indiqué veut dire qu'en fait il faudrait que j'ecrive dans page1:
document.cookie = "name = monsite"
document.cookie = "toto = soleil";
et dans page2 var planete = document.cookie;
Marsh Posté le 01-03-2007 à 17:21:28
si dans la page 2 tu écris:
Code :
|
tu vas te retrouver avec "monsite=toto" dans ta variable.
Mais qu'essaye tu de faire ensuite avec planète? ça donne rien ça veut dire quoi?
Marsh Posté le 01-03-2007 à 17:40:41
non ce que je veux dans la variable planete qui est definie sur la page 2 c'est la valeur de toto qui elle a ete affectée dans page 1 c'est a dire soleil ou au pire "toto = soleil"
ce que je veux faire avec planete ensuite dans page 2 si c'est absolument necessaire que j'indique quelque chose pour ce probleme de définition de cookie
on va fixer les choses par cette instruction
document.write("on voit le:" +planete);
qui doit afficher "on voit le:soleil" (ou au pire "on voit le:toto=soleil" que je parserais dans ce cas ensuite pour enlever toto=)
Marsh Posté le 02-03-2007 à 15:23:43
Bon alors visiblement malgré le lien que tu m'as envoyé et les essais que j'ai pu faire qui n'ont rien donnés
J'arrive pas a ecrire une syntaxe correcte pour créée et manipuler un cookie en javascript
avec en page1 l'instruction qui créée le cookie et qui y met la valeur de de la variable toto
et en page 2 l'instruction qui lit ce cookie et affecte a planete, la chaine qu'il contient
pour en définitive réaliser lorsque on clique sur le lien de la page 1 qui mene à la page2 une transmission de la valeur de la variable toto de la page1 à la page2, j'ai lu des autres articles sur ce sujet qui semble possible mais j'arrive pas à le mettre en oeuvre sur l'exemple tres simple que j'ai mentionné ici, donc merci à anapajari pour ses interventions et a tous ceux qui voudront bien me donner les instructions que je dois ecrire pour cet exemple et m'aider ainsi a y voir pus clair sur la facon de se servir de ces cookies
Marsh Posté le 06-03-2007 à 18:25:02
personne ne connaissant javascript ici, etant en mesure de me dire plus precisement quelles instructions je dois ecrire dans cet exemple simple que j'ai décrit
afin de créée et d'ecrire dans le cookie puis de le relire ensuite?
je continue de patoger a essayer de comprendre ce que je lis ailleurs et tenter de nouvelles modifications de syntaxe mais rien de ce que je fais pour faire ce cookie ne produit de resultat votre aide a tous qui veulent bien m'aider me serait précieuse
Marsh Posté le 06-03-2007 à 18:46:45
Allez c'est la fin de journée s'cadal !
Page1:
Code :
|
page 2:
Code :
|
Marsh Posté le 07-03-2007 à 15:10:47
merci pour ce code j'avais pu lire un code similaire sur une autre page auparavant mais merci de m'avoir consacré du temps
il repond pas exactement a l'exemple que je proposais mais en faisant une synthèse de tous les éléments que j'avais
mon code c'est mis a fonctionner sans que je change quelque chose
ce qui marche donc est en
page1:
var toto = "le soleil";
var tata = "la lune";
document.cookie = toto;
et en page2:
document.write("on voit le:" +planete);
OK donc par rapport à ce que je voulais faire au début, je reviens donc sur ma question3 où je veux pouvoir dans un second temps afficher en page3 lune à la place de soleil
questionA: je crois comprendre maintenant mais tu vas me le confirmer, je prefere (ou quelqu'un d'autre), je ne peux créée en fait en page1 qu'un seul cookie donc si je veux dans des cookies les contenus de toto et tata, il faut bien que je les mette dans un unique cookie séparé par un caractère de mon choix (a priori le ou bien est ce que je peux créée deux cookies differents en page1?
Question B: j'avais cru comprendre que la syntaxe que je popose à l'instant écrivait le cookie en memoire et non sur disque, vrai ou faux?
Par rapport au code que tu m'as proposé j'ai aussi d'autres questions
Question C: la facon de manipuler le cookie dans ce code et en particulier en indiquant une date de validité,veut il dire que ce cookie est ecrit sur disque?
quand j'ai testé ton code en local, je n'ai pas retrouvé trace du fichier sur mon disque et du reste je vois pas trop quel nom ton code lui aurait donné
Question D: si ton code (ou le mien) n'ecrit pas ce cookie sur disque met le met juste en memoire ce que je souhaite, dans quelles conditions disparait il de la memoire? Faut il fermer le navigateur, la page ou eteindre la machine ou peut etre autre alternative?
Question E: quelle est l'utilité de toute cette partie du code ( ci apres )d'une maniere plus générale a mon probleme puisque j'ai constaté qu'on le retrouve ou a peu de chose pres sur de nombreux documents html publique que j'ai pu trouver sur le net mais jusqu'a maintenant je ne l'ai jamais mis sur mes pages et me suis toujours demandé ce qui pouvait se passer en ne le mettant pas ou en le mettant (et en particulier dois je comprendre qu'en ne le mettant pas certaines balises ou fonctionnement html pourraient avoir un comportement eratique suivant l'environement client qui lit mes pages)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
Marsh Posté le 07-03-2007 à 15:13:51
j'ai fait un oubli en page du code qui marche mais tu aurras rectifié
il manque bien sur
var planete = document.cookie;
comme tu le proposais d'ailleurs
Marsh Posté le 07-03-2007 à 15:25:20
D'abord un lien: http://www.quirksmode.org/js/cookies.html
Tu y trouveras une réponse à quasiment toutes les questions que tu te poses!
Mais en résumé:
A: tu peux créer autant de cookies que tu veux
B: sur "le disque" voir le point "How cookies work"
C: voir B
D: voir B
E: voir: http://openweb.eu.org/articles/differentes_dtd/
Marsh Posté le 07-03-2007 à 15:30:13
page2 bien sur pour l'erratum et ";" pour le séparateur et non un smiley
la questionD sous entend outre la destruction du cookie que l'on doit controler si on le crée,
une question F sur sa reinitialisation durant toute la navigation du client sur les pages du site, a priori de ce que je comprends chaque fois que la page1 va etre chargée le cookie va t'il bien contenir la chaine que je lui aurais affecté au premier chargement et s'écraser d'elle meme pour s'y remettre (contenir donc qu'une seule occurence de la chaine a mettre dans le cookie), ou bien chaque chargement de la page1 comporte le risque de concatener des valeurs de chaines identiques de telle sorte que si je suis revenu 3 fois a la page1 par exempe j'aurai en definitive a cet instant dans le cookie comme chaine, 3 fois la chaine initiale concaténée
Marsh Posté le 07-03-2007 à 17:04:49
fais des plus gros patés sans ponctuation, là j'ai du mal à lire
Marsh Posté le 28-02-2007 à 19:32:38
bonjour
j'ai un bout de code a ecire en javascript pour résoudre un problème dont j'ignore encore comment y parvenir et ne maitrisant pas trop bien le javascript je me perds dans toutes ses méandres
une idée qui pourrait déboucher serait d'utiliser un cookie en mémoire mais j'arrive pas à le crée convenablement j'expose ce que je veux faire de cette facon
J'ai deux pages html on va les appeller page1.html et page2.html
dans le code et dans le body de la page1
on trouve
<A href ="page2.html"> vers la page 2 </A>
dans le head de la page 1 j'ai dans des balises script javascript
une variable toto="le soleil"
et je voudrais juste apres cette variable fabriquer ce maudit cookie contenant juste la valeur de la variable toto (pas d'autre viarable dans un premier temps-voir question3)
je suppose qu'il faut écrire un truc du genre document.cookie = qqch
question 1: Pouvez vous me dire ce que je dois écire a la place de qqch ?
dans la page 2
nous avons un body avec du texte peu importe
je veux dans le head et bien sur dans des balises script qui vont bien
1) récupérer le contenu du cookie qui a ete crée dans la page 1 appelante (cad la chaine soleil)
2) l'affecter dans une variable qu'on va appeler planete pour fixer les choses
question 2: pouvez vous me dire ce qu'il faut donc ecrire pour faire ca?
3eme question
si ce qui precede est faisable
je rajoute maintenant dans le body de la page 1 une seconde balise <A> vers une page3.html du meme genre que pour page2 et dans le head de page 1 une variable tata="lune"
si je veux maintenant avoir le mot lune au lieu de soleil lorsqu'on clique sur ce second lien vers page3 et qu'on se retrouve sur page3,
est ce que je peux créée un second cookie que je pourrais ensuite accedé par son nom si oui comment fait on ca
ou bien dois je ecrire dans un unique cookie soleil et lune et suivant la page ne pas lire au meme endroit dans la chaine?
(là je crois avoir lu pas mal de choses qui pour le moment sont assez claires qui expliquent avec split et substr comment on peut découper la chaine)
Merci d'avance a tous ceux qui maitrisent ce langage qui voudront bien m'aider et m'expliquer si tout ca est possible et comment on met ce petit exemple en pratique