11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

---Récupérer Cookies Prénom---
j'ai créé une fonction pour créer des cookies qui stockent le nom, le prénom de l'utilisateur quand il visite la 1ère fois le site. Je récupère ces cookies de façon à afficher dès lors que les informations sont rentrées pour afficher un message de bienvenue "Bienvenue sur notre site Prénom NOM"
Cependant, cela ne m'affiche que le nom et mets pour le prénom 'undefined', aussi bien sur Chrome que sur Firefox. Je n'ai pas de message dans la console du navigateur.

function creerCookie(nom,valeur,jours) {
	if (jours) {
		var date = new Date();
		date.setTime(date.getTime()+(jours*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = nom+"="+valeur+expires+"; path=/";
}

function recupererCookie(nom) {
	var nomRC = nom + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nomRC) == 0) return c.substring(nomRC.length,c.length);
	}
	return "inconnu";
}

//fonction qui permet de gérer le retour d'un utilisateur déjà connu (cookie déjà créé) 
function verifCookie() {
            var username = recupererCookie("username");
			var usersurname = recupererCookie("usersurname");
            if ((username != "inconnu" && username != "")&&(usersurname != "inconnu" && usersurname != ""))  
               document.getElementById("demo2").innerHTML="Ravi de vous revoir "+ usersurname +" "+ username +"!";
            else 
				welcome();
}


---Récupérer Cookies Image et l'afficher---
J'ai également créé un cookie pour qu'un utilisateur sauvegarde une photo favorite qui fonctionne car j'ai bien un résultat quand je recupère le cookie :

http://localhost/fetesetmets/images/anniversaire/03-le-g%C3%A2teau-d'anniversaire-d'une-fashionista.jpg

J'aimerai récupérer ce "lien" pour afficher la photo dans une page HTML, hors comme mes titres de photos comportent des accents et que j'ai une fonction qui récupère le lien de la photo pour l'afficher en titre, le lien ne fonctionnera pas. Comment le transformer ? j'ai utilisé htmlEntities trouvé sur le web qui fonctionne pour mes titres de fonction mais sans succès.

Voici mon code jusqu'à présent :

//fonction pour sauvegarder une photo, par la création d'un cookie, 
	function favPics(img_source) {
		//variable pour récupérer le lien de l'image en cours 
		var image_en_cours=document.getElementById("album").src;
		// variable pour appeler et créer un cookie photo favorite
		var fav;
		//j'utilise un if pour ne pas enregistrer 2 fois la même photo
		if(image_en_cours!=fav){
			fav=creerCookie("favorite",image_en_cours,"30");
		}
		//j'utilise une boucle for afin que l'utilisateur puisse ajouter plusieurs photos favorites
		for(fav=1;1<=nb_img.length;fav=fav+1){
			fav=creerCookie("favorite",image_en_cours,"30");
		}		
	}
	
	//fonction pour vérifier les cookies
	function voirCookFav(){
		var f_av="";
		f_av=recupererCookie("favorite");
		document.getElementById("cookies").innerText=f_av;
	}
	
	//fonction pour gérer les caractères spéciaux des titres de photos
	function htmlEntities(str) {
		return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
	}
	
	//fonction pour afficher la photo favorite
	function affCookieFav(){
		var f_av="";
		f_av=recupererCookie("favorite");
		document.getElementById("themes_img").src=f_av;
	}


Merci de m'avoir lue Smiley sweatdrop
Modifié par FeeJen (14 Apr 2018 - 15:57)
Bonjour,

Si je fais :
creerCookie('usersurname','usersurnamevaleur1',true);
  creerCookie('username','usernamevaleur2',true);
  var username = recupererCookie("username");
  var usersurname = recupererCookie("usersurname");

je récupérè bien 'usernamevaleur2' et 'usersurnamevaleur1'.

donc je pense que c'est au niveau de ton creerCookie qui assigne un undefined à prénom
https://codepen.io/Zonecss/pen/pLmYzm
Nope ça ne fonctionne pas j'ai toujours le même problème.

aliasdmc a écrit :
Bonjour,

Si je fais :
creerCookie('usersurname','usersurnamevaleur1',true);
  creerCookie('username','usernamevaleur2',true);
  var username = recupererCookie("username");
  var usersurname = recupererCookie("usersurname");

je récupérè bien 'usernamevaleur2' et 'usersurnamevaleur1'.

donc je pense que c'est au niveau de ton creerCookie qui assigne un undefined à prénom
https://codepen.io/Zonecss/pen/pLmYzm
C'est un devoir d'école, le site ne sera jamais sur internet, et on me demande d'utiliser le cookie pour stocker des info... je me doute qu'il y a surement de meilleure façon de faire Smiley cligne

bazooka07 a écrit :
Les cookies, c'était valable jadis avec HTML 4.0. Smiley cligne
Avec HTML 5.0, il vaut mieux utiliser local.storage
https://developer.mozilla.org/fr/docs/Web/API/Window/localStorage
C'est plus simple à utiliser et cela évite que les valeurs se balladent sur Internet.
Bonjour,

FeeJen a écrit :
Nope ça ne fonctionne pas j'ai toujours le même problème.

As tu essayé de forcer la valeur du prenom quand tu fais ton creerCookie, juste pour voir si cela fonctionne
Vérifies que tu n'as fait une faute de frappe dans le nom de ta variable au moment de ton creerCookie
du genre : "username " au lieu de "username"
ou 'usernane' au lieu de "username"