2010-07-13 5 views
1

Je souhaite afficher une vidéo lorsqu'une personne vient sur le site et n'a pas de cookie. Après avoir vu la vidéo, un cookie est ajouté, mais lorsque le cookie expire, la vidéo est rejouée.Comment afficher quelque chose lorsqu'un cookie expire

if (Request.Cookies["x"] != null) 
    { 
     //do nothing 
    } 
    else 
    { 
     ModalPopupExtender1.Show(); 
     Response.Cookies["x"].Value = DateTime.Now.ToString(); 
     Response.Cookies["x"].Expires = DateTime.Now.AddHours(24); 
    } 

Je pense que cela fonctionnerait correctement, mais le film ne montre que si le navigateur est débarrassé de tous les cookies. 24 heures plus tard, le film ne jouera pas.

Comment résoudre ce problème?

Répondre

1

Vous devez vérifier si le cookie est nul ET s'il a expiré. De toute évidence, le cookie est toujours sur le navigateur de l'utilisateur, mais a expiré et ne rien faire.

if (Request.Cookies["x"] != null && Convert.ToDateTime(Request.Cookies["x"].Expires) > DateTime.Now) 
{ 

    // do nothing 
} 
else 
{ 
    // your other code 


} 
+0

Bien que ce soit probablement le cas, cela semble faux. Vous ne devriez pas être en mesure d'obtenir la valeur d'un cookie expiré, à la fois le navigateur et le framework devraient gérer cela. –

+0

Je suis totalement d'accord que cela semble faux! – TheGeekYouNeed

+0

Je lisais sur les cookies il y a un moment et quand ils expirent, les cookies sont censés être supprimés. C'est pourquoi je n'ai jamais vérifié un cookie expiré. – Kyle

0
if (Request.Cookies["x"] != null && Convert.ToDateTime(Request.Cookies["x"].Expires) < DateTime.Now) 
    { 
     //do nothing 
    } 
    else 
    { 
     ModalPopupExtender1.Show(); 
     Response.Cookies["x"].Value = DateTime.Now.ToString(); 
     Response.Cookies["x"].Expires = DateTime.Now.AddHours(24); 
    } 

Il était correct, mais la logique était un peu mal.

Questions connexes