Applying Logic to Overwrite Cookies consecutively

Posted on 2009-07-03
Last Modified: 2012-05-07
Hi All,

I am in the midst of creating a 'Last Viewed' cart function which in a nutshell records that last 2 products the user viewed.

I am creating this function using 2 cookies called - productID1 and ProductID2 which stores the database IDs of the product.

My problem is implementing the logic to create the cookies when on the product page...

I had the following IF statement in place initially (which I know is wrong) but to find that once 2 products have been viewed and both cookies have been created then the 3rd product the user looks at this should overwrite productID1 and the 4th product viewed should overwrite ProductID2 and so on and so on!

Please could anyone suggest how I could change the logic so that once both cookies are created, my code overwrites the first cookie and then second and so on...

Many thanks,


if (!Page.IsPostBack)


            if (Request.Cookies["ProductID1"] == null)


                // create cookie


            else if (Request.Cookies["ProductID2"] == null)


                // create cookie



Open in new window

Question by:rito1
LVL 12

Accepted Solution

Cyber-spy earned 500 total points
Comment Utility
You just need to detect if both cookies exist and if so, update the first with the value of the second, and update the second with the new value.
This way, the first cookie is always the first product visited and the second always the most recent.

You can put the SetCookies function below in the !IsPostBack section as you have already done, but you do need to get the new ProductID first.

To improve it, you can also add checks to see if the latest ProductID is already saved in one of the cookies and ignore if it is
private void SetCookies(int ProductID)


    // If no Product Cookies exist, create the first one

    if (Request.Cookies["Product1"] == null)


        Response.Cookies.Add(new HttpCookie("Product1", ProductID.ToString()));


    // If the first exists and not the second, create the second one

    else if (Request.Cookies["Product2"] == null)


        Response.Cookies.Add(new HttpCookie("Product2", ProductID.ToString()));


    // Both cookies exist, so move the value of the second to the first, and update the second



        Response.Cookies.Set(new HttpCookie("Product1", Request.Cookies["Product2"].Value));

        Response.Cookies.Set(new HttpCookie("Product2", ProductID.ToString()));



Open in new window


Author Closing Comment

Comment Utility
Cyber-spy, that is much appreciated indeed. Its spot on what I need!



Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Remove a text string from the end of another string 5 19 Email  a webpage 3 24
c# code 19 56 mvc 5 5 13
Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now