Protection page avec cookie de session expire

Résolu
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 7 juin 2007 à 14:45
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 7 juin 2007 à 16:47
Bonjour,
Je voudrais créer une page d'authenfication donnant accès à une page necessitant un cookie de session qui est crée lors de l'authentification et qui sera détruit lors lorsqu'il cliquera sur un lien de type logout.

J'ai crée ma page d'authentification mais j'ai l'impression que le cookie ne se crée pas puisque je n'arrive pas à accéder à la page suivante. Je mets le code source de mes 2 pages (authentification et la page protégée).

Voici le code de ma page d'authentification :
<script>
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name)  {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)  {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value)  {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}


function cookieCreater () {


var expdate = new Date ();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
SetCookie('FreeStuffL', expdate); 


}


</script>
</head>



Page d'authentification :

<form action="page.htm" method="post" name="messagerie">

 
</form>

Le code de ma page protégée par le cookie de session :
<script>
if(GetCookie('FreeStuffL') == null)
alert ("I'm sorry.  You can not view this area!  You will be bounced to the login page...");
location.href="Auth.htm";


function GetCookie (name)  {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)  {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}


function DeleteCookie () {
var exp = new Date();
exp.setTime (exp.getTime() - 1000000000);  // This cookie is history
var cval = GetCookie ('FreeStuffL');
document.cookie ='FreeStuffL' + "=" + cval + "; expires=" + exp.toGMTString();   
}
</script>

Page protégée !

[ Logout]

Si quelqu'un peut m'aider parce que je maitrise pas vraiment bien les cookies.
Merci.

Jarod_Delaware

2 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
7 juin 2007 à 15:12
Bonjour,
   
niveau protection, les cookies, c'est un peu léger...

un cookies c'est un "string, avec une date de péremption".

pour le créer :
   var expire = new Date ();
   expire.setTime ( expire.getTime() + (24 * 60 * 60 * 1000) );
   document.cookie = "ce qu'on veut ici; expires=" +expire.toGMTString();

    // ici donc, il expirera dans 24 h  ( date et heure actuelle + milli secondes )

pour le lire :
    var tmp=document.cookie;
            récupèrera "
ce qu'on veut ici"


tester s'il existe :
    if ( document.cookie )
le détruire :
    mettre une date périmée , ou pas d'expire...

   var expire = new Date ();

   expire.setTime ( expire.getTime() - 1000 );

   document.cookie = "il sera détruit ; expires=" +expire.toGMTString();








il est vrai que la plupart des docs compliquent l'hitoire

      en montrant une mémorisation d'infos multiples dans le cookies
       ce qui n'a rien à voir avec le cookie en lui même.

<hr />


Cordialement                Bul    
3
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
7 juin 2007 à 16:47
Salut Bul,

Merci pour les explications, elles claires, limpides. Impeccables !

Merci encore.

Jarod_Delaware
0