11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

Aujourd'hui j'essai d'apprendre comment fonctionnent les cookies avec javascript (je débute)

J'arrive donc a créer un cookie et a l'afficher avec une alerte (c'est déjà pas mal Smiley lol )
Par contre malgrés tous les tutos que j'ai pu rencontrer, je n'arrive pas a l'effacer ni a le modifier une fois créer ...

Voici le code que j'utilise

//pour le créer 
document.cookie = "prix="+ma_variable_1+"; expires=Thu, 01 Jan 2120 00:00:00 UTC; path=/;";

// pour afficher tous les cookies

var cookie = document.cookie; 
alert(cookie);

//pour le modifier
document.cookie = "prix="+ma_variable_2+"; expires=Thu, 01 Jan 2120 00:00:00 UTC; path=/;";

//pour reafficher le cookie modifié
var cookie = document.cookie; 
alert(cookie);



Mon souci est que cela me créé un deuxième cookie et ne modifie aucunement le premier..

J'ai aussi essayé de mettre une date plus ancienne que la date actuel pour qu'il devienne "périmé" mais cela ne fonctionne pas non plus..

Je cherche a faire cela dans le but de pouvoir le lire avec un script php

Si une âme charitable pouvait m'expliquer ça serait bien sympas Smiley biggrin

Merci a vous
J'ai trouvé une solution qui fonctionne Smiley lol

Vu que je n'y arrivais pas en javascript, je le fais en php Smiley cligne


<?php
$prix = $_COOKIE['prix'];
echo "$prix";
?>


<?php
setcookie ('prix', NULL, -1);
?>



ça fonctionne parfaitement.

Mais je suis quand même preneur de l'explication pour le javascript Smiley langue
Meilleure solution
cookie est une chaine de caractère constituée de plusieurs couples variable/valeur séparé par un caractère point-virgule ";" .

Ces 3 variable/Valeur
--username=;
--expires=Thu, 01 Jan 1970 00:00:00 UTC;
--path=/;";
deviennent dans le navigateur
--document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

Donc il faut créer une fonction qui gère la récupération de la variable dans cette chaine.
Allez sur le site https://www.w3schools.com/js/js_cookies.asp

Lorsque vous avez compris le bas niveau vous pouvez passer à un librairie plus haut niveau qui vous évite d 'écrire le code pour gérer la mise a jour des variable .
si vous utilisez jquery il y a des plug in comme http://plugins.jquery.com/cookie/

Après si vous voulez vous évitez le codage coté php il y a des frameworks coté serveur ou des CMS .
pour user / password ?
pour wordpress https://codex.wordpress.org/WordPress_Cookies
pour drupal https://api.drupal.org/api/drupal/modules!user!user.module/function/user_cookie_save/7.x
pour .......

En cherchant un peu sur internet et en passant un peu de temps à comprendre on trouve la réponse ..... google est le meilleur moteur pour trouver facilement et malheureusement il est le seul à être efficace ( à part moteur basé sur google si cela existe ? ) . Google Home (alexa like ++) vous permettra de chercher par la voix sans passer par le clavier ..l’avenir maintenant !!

javascript est un des langages qui vous permet d' avoir un debugger gratuit car il est inclus dans les différents navigateurs. Tous les navigateurs utilisent le même raccourci touche du clavier F12 et vous propose une REPL/shell/ligne de commande !!

NB je mélange english et français c'est comme ça........L informatique c'est de l'anglais j'attends toujours le portage de javascript en français ......
Modifié par 75lionel (30 Jul 2017 - 17:31)
Merci pour votre réponse, je suis en effet allez sur le site W3school pour voir comment cela fonctionne.Je dirais même que j'y vais a chaque fois car leur page d'essais des scripts et très pratique et formatrice.

Concernant les cookie, le but est de passer une variable d'une page html vers une autre.

J'ai écris un script qui me récupère un prix et je voudrais l'envoyer vers ma page facture.html

Donc pour le moment avec du php cela fonctionne, c'est just que j'aurais voulu comprendre pourquoi en suivant W3school, cela ne fonctionne pas sur ma page.

J'irai a tempo perdu fouiller sur google si je trouve des exemples fonctionnel afin de m'en inspirer Smiley cligne