IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupération de cookie codé JSON


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 628
    Points : 826
    Points
    826
    Par défaut Récupération de cookie codé JSON
    Bonjour,

    Je travaille avec Chrome.
    J'ai un cookie codé en JSON par un script PHP.
    Le cookie est sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %7B%222%22%3A%7B%22font%22%3A%5B%22Arial%22%2C%22Arial%22%2C%22Arial%22%5D%2C%22size%22%3A%5B%2212%22%2C%2212%22%2C%2212%22%5D%2C%22color%22%3A%5B%220%2C0%2C0%22%2C%220%2C0%2C0%22%2C%220%2C0%2C0%22%5D%2C%22insField%22%3A%5B%5B%22SNC%22%5D%2C%7B%221%22%3A%22dat_individus.sexe%22%2C%222%22%3A%22dat_individus.prenom%22%2C%223%22%3A%22dat_individus.nom%22%7D%2C%7B%224%22%3A%22dat_individus.statut%22%7D%5D%2C%22insSep%22%3A%7B%221%22%3A%7B%222%22%3A%22+%22%2C%223%22%3A%22+%22%7D%7D%2C%22save%22%3A%22JS2%22%7D%2C%223%22%3A%7B%22font%22%3A%5B%22Arial%22%2C%22Arial%22%5D%2C%22size%22%3A%5B%2212%22%2C%2212%22%5D%2C%22color%22%3A%5B%220%2C0%2C0%22%2C%220%2C0%2C0%22%5D%2C%22insField%22%3A%5B%5B%22SNC%22%5D%2C%7B%221%22%3A%22essai%22%2C%222%22%3A%22ffff%22%2C%223%22%3A%22sup%5Cu00e9rieur%22%7D%5D%2C%22insSep%22%3A%7B%221%22%3A%7B%222%22%3A%22%5Cu00a0-%5Cu00a0%22%2C%223%22%3A%22+%22%7D%7D%2C%22save%22%3A%22ghj%22%7D%7D
    La console me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Uncaught SyntaxError: Unexpected token % in JSON at position 0
        at JSON.parse (<anonymous>)
        at HTMLSelectElement.<anonymous>
    Je vois bien que mon cookie commence par un % mais comment remédier au problème.
    Si cela peut aider voici le code PHP qui enregistre le cookie:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		// Sauvegarde de la configuration
    		$save = trim($_POST['save']);
    		if (!empty($save)) {
    			$cookies = [];
    			if (isset($_COOKIE['save'])) {
    				// Si le nom de sauvegarde existe déjà on détruit l'ancienne sauvegarde
    				$cookies = json_decode($_COOKIE['save'], true);
    				foreach ($cookies as $key=>$cookie) {
    					if ($cookie['save'] === $save) unset($cookies[$key]);
    				}
    			}
    			$cookies[] = $_POST;
    			setcookie('save', json_encode($cookies), time() + 3600*24*3650);
    		}
    Pour info la lecture du cookie sous php fonctionne parfaitement.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Ton cookie est url encodé ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    json="%7B%222%22%3A%7B%22font%22%3A%5B%22Arial%22%2C%22Arial%22%2C%22Arial%22%5D%2C%22size%22%3A%5B%2212%22%2C%2212%22%2C%2212%22%5D%2C%22color%22%3A%5B%220%2C0%2C0%22%2C%220%2C0%2C0%22%2C%220%2C0%2C0%22%5D%2C%22insField%22%3A%5B%5B%22SNC%22%5D%2C%7B%221%22%3A%22dat_individus.sexe%22%2C%222%22%3A%22dat_individus.prenom%22%2C%223%22%3A%22dat_individus.nom%22%7D%2C%7B%224%22%3A%22dat_individus.statut%22%7D%5D%2C%22insSep%22%3A%7B%221%22%3A%7B%222%22%3A%22+%22%2C%223%22%3A%22+%22%7D%7D%2C%22save%22%3A%22JS2%22%7D%2C%223%22%3A%7B%22font%22%3A%5B%22Arial%22%2C%22Arial%22%5D%2C%22size%22%3A%5B%2212%22%2C%2212%22%5D%2C%22color%22%3A%5B%220%2C0%2C0%22%2C%220%2C0%2C0%22%5D%2C%22insField%22%3A%5B%5B%22SNC%22%5D%2C%7B%221%22%3A%22essai%22%2C%222%22%3A%22ffff%22%2C%223%22%3A%22sup%5Cu00e9rieur%22%7D%5D%2C%22insSep%22%3A%7B%221%22%3A%7B%222%22%3A%22%5Cu00a0-%5Cu00a0%22%2C%223%22%3A%22+%22%7D%7D%2C%22save%22%3A%22ghj%22%7D%7D"
     
    json=decodeURIComponent(json);
    json=JSON.parse(json);
    console.log(json["2"]);;

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 628
    Points : 826
    Points
    826
    Par défaut
    Merci, voici déjà un pas de fait. Maintenant, j'aimerais savoir:
    - comment j'aurais pu savoir qu'il s'agissait d'un codage url (je ne savais même pas que ça existait),
    - comment restituer mon cookie sous forme de tableau comme il l'était à l'enregistrement,
    - pourquoi json["2"] qui me retourne uniquement le chiffre 2.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    - La profusion de % dans ton string aurait dû te mettre sur la piste d'un urlencode ... (question d'habitude)
    - https://jsfiddle.net/4v26fr46/
    - parce que tu n'as pas du prendre le dernier code fourni...

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 628
    Points : 826
    Points
    826
    Par défaut
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] récupération de cookie dans une requête
    Par benjamin002 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/11/2010, 16h33
  2. [MySQL] Récupération valeurs cookie
    Par upthere dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/06/2010, 10h04
  3. récupération de cookie et appel de script
    Par trucentete dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/04/2009, 16h51
  4. [AJAX] Récupération d'un fichier JSON avec javaScript
    Par guerin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2006, 20h05
  5. [Cookies] Récupération de cookie de session...
    Par Tizard dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2005, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo