devxlogo

Let ASP determine whether cookies are enabled

Let ASP determine whether cookies are enabled

Most web sites heavily rely on client-side cookies. For example, ASP Sessions can work correctly only if the browser allows temporary cookies (that are not stored on disk). ASP doesn’t provide any native method to understand whether cookies are enabled or not, but you can use the following code:

<%    If Request.QueryString("Trying") = "" Then        ' this is the first time this page has been called        ' set a cookie and redirect to this same page        Response.Cookies("TryingCookie") = "ON"        Response.Redirect Request.ServerVariables("URL") & "?Trying=ON"    Else        ' we got here because of the redirection        if Request.Cookies("TryingCookie") = "" Then            ' cookies aren't supported - display an error message and exit            Response.Write "Sorry, you need to enable cookies to display this " _                & "page"            Response.End         End If                ' clear the trying cookie (optional)        Response.Cookies("TryingCookie") = ""    End If        ' the rest of the page is executed only if the client browser supports     ' cookies%>Welcome to this web site. <P>Please remember not to disable cookie support before visiting this site.

The above code works as follows: the first time the client requests this page, the ASP code attempts to create a client-side cookie named TryingCookie (any name will do, of course), then redirects the browser to the same page, this time adding a Trying argument on the query string.

When the new request arrives, the extra query string argument lets the code understand that this is the second time this page is requested, so the code can verify whether the TryingCookie does exist or not. If it doesn’t, then the browser doesn’t support cookies, and you can display a warning and terminate the current page. Otherwise you can flow into the remainder of the page, that contains the actual HTML you want to display if the browser supports cookies.

devx-admin

Share the Post: