11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous.

J'ai tenté ( surement maladroitement ) de créer un cookie pour mon site internet, mais il ne fonctionne pas du tout, et je ne comprends pas pourquoi.
Voila le code de ma fonction créant le cookie en question :

// Cookie Langue

function setCookieLang(lng)
var dateExp = dateExp.toGMTString(1000*60*60*24*30)  // Validité de 1 mois
{ document.cookie = "langue =" + lng ;
  expires = dateExp; }


Et voici le code (simplifié) de ma page d'accueil :

<html><head><title>Redirection suivant cookie</title>

<script src="JavaScript/setCookieLang.js"> </script>
</head>
<script type="text/javascript">
<!-- masquage

switch (lng)
{
  case fr:
    window.location:"fr.htm";
   break;
  case en:
    window.location:"en.htm";
    break;
  default:
    window.location:"normal.htm";
   break;
}
  
// fin masquage -->
</script>


<body>
</body>
</html>


Comme vous l'avez surement compris, je souhaite que le visiteur recois un cookie, qui à sa prochaine visite lui évite de rechoisir le choix de langue.
Mais quelquechose cloche là dedans, si quelqu'un pouvais m'aider, je lui en serais extrêmement reconnaissant.
Tu as bien crée une fgonction JS qui te lit le contenu du cookie?
De plus, je ne vois pas l'appel à ta fonction setCookieLang()
J'ai mis l'appel à ma fonction sur les pages fr.htm et en.htm ( pages qui sont indiqué dans le 2ème code que j'ai inscrit )

j'ai tout simplement mis un :

setCookieLang(fr) ou setCookieLang(en)

Edit : bon, j'ai corrigé l'accolade, j'avais pas vu cette erreur merci.
Mais ca ne marche toujours pas.

Et que veux tu dire par une fonction qui lit le cookie ?
Modifié par H0ly (13 Apr 2006 - 17:37)
Ok, j'avais un peu laissé tombé les cookies car j'avais vraiment du mal avec ca. Mais j'ai repris aujourd'hui sur de nouvelles bases Smiley langue

J'ai donc crée ca :


// PAGE D'ACCUEIL
<body>
<head>
<title>Menu</title>
<script type="text/javascript" src="get.js"> </script> 
</head>
<body onLoad="GetCookie()";>

<a href="1.htm"> Choix 1</a> 
<a href="2.htm"> Choix 2</a>

</body>
</html>


// PAGE 1 ( EXCEPTE LES 1 EN 2, LA PAGE 2 EST IDENTIQUE )
<html>
<head>
<title>Choix 1</title>
<script type="text/javascript" src="create.js"> </script>
</head>
<body onLoad="SetCookie(choix, 1)";>

Choix 1 validé !

</body>
</html>

 // CREATE.JS
function SetCookie (name, value)
{
//nouvel objet date
var aujourdhui = new Date() ;
 
//nouvel objet date
var expdate = new Date() ;
 
//date expiration = 1 mois
expdate.setTime( aujourdhui.getTime() + ( 30*24*60*60*1000 ) )
 
//creation du cookie
document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString() ;

FONCTION GET.JS
function GetCookie ()
{
var cookValue = "" ;
 
//position de "=" dans le cookie
var egal= document.cookie.indexOf( "=" ) ;
 
//on prend la sous-chaine comprise entre le "=" et le ";" donc sa valeur
cookValue = document.cookie.substring ( egal + 1 ) ;
 
//affiche la valeur du cookie
alert ( "La valeur du cookie est : <b>" + cookValue + "</b>" ) ;
}


Quand je charge la page d'accueil je suis censé obtenir une alerte vide la première fois, et indiquant la valeur du cookie les autres fois. Mais l'alerte est toujours vide, et je ne comprends vraiment pas =/

Si vous pouviez éclairer ma lanterne, ce serais vraiment sympa.
Modifié par H0ly (09 May 2006 - 17:46)