?
Solved

Set cookie and redirect

Posted on 2001-08-10
11
Medium Priority
?
714 Views
Last Modified: 2010-08-05
I need a very simple cookie (I hope) for a site.

I want visitors to be redirected from the opening page of the website if they have been on that page before. The opening page is a flash movie, and I don't want the visitors to see it every time they enter the site. So when the visitor comes a second time to the site through the opening page, they are automatically redirected to the next page.

Makes sense? :-)
--
klykken
0
Comment
Question by:klykken
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +1
11 Comments
 
LVL 12

Expert Comment

by:ahosang
ID: 6373881
These are your cookie functions:
function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
    document.cookie = curCookie;
  }
  function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
      begin = dc.indexOf(prefix);
      if (begin != 0) return null;
    } else {begin += 2;}
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {end = dc.length;}
    return unescape(dc.substring(begin + prefix.length, end));
  }

So in the script section in head, write :
now=new Date();
now.setFullYear(now.getFullYear()+1);
setCookie("beenBefore", "yes",now);
if (getCookie("beenBefore")) {
  //redirection code
}
0
 
LVL 9

Accepted Solution

by:
Bob Stone earned 400 total points
ID: 6373944
Here's a script I recently got as answer to almost the same prob

<html>
<head>
<script type="text/javascript" language="javascript">
<!--

/*
WM_setCookie(), WM_readCookie(), WM_killCookie()
A set of functions that eases the pain of using cookies.

Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)

Author: Nadav Savio
Author Email: nadav@wired.com
*/


// This next little bit of code tests whether the user accepts cookies.
var WM_acceptsCookies = false;
if(document.cookie == '') {
   document.cookie = 'WM_acceptsCookies=yes'; // Try to set a cookie.
   if(document.cookie.indexOf('WM_acceptsCookies=yes') != -1) {
    WM_acceptsCookies = true;
   }// If it succeeds, set variable
} else { // there was already a cookie
 WM_acceptsCookies = true;
}


function WM_setCookie (name, value, hours, path, domain, secure) {
   if (WM_acceptsCookies) { // Don't waste your time if the browser doesn't accept cookies.
    var not_NN2 = (navigator && navigator.appName
                && (navigator.appName == 'Netscape')
                && navigator.appVersion
                && (parseInt(navigator.appVersion) == 2))?false:true;

    if(hours && not_NN2) { // NN2 cannot handle Dates, so skip this part
        if ( (typeof(hours) == 'string') && Date.parse(hours) ) { // already a Date string
         var numHours = hours;
        } else if (typeof(hours) == 'number') { // calculate Date from number of hours
         var numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();
        }
    }
    document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path='
+ path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set
the cookie, adding any parameters that were specified.
   }
} // WM_setCookie


function WM_readCookie(name) {
   if(document.cookie == '') { // there's no cookie, so go no further
    return false;
   } else { // there is a cookie
    var firstChar, lastChar;
    var theBigCookie = document.cookie;
    firstChar = theBigCookie.indexOf(name);     // find the start of 'name'
    var NN2Hack = firstChar + name.length;
    if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) { // if you found the cookie
        firstChar += name.length + 1; // skip 'name' and '='
        lastChar = theBigCookie.indexOf(';', firstChar); // Find the end of the value string (i.e.
the next ';').
        if(lastChar == -1) lastChar = theBigCookie.length;
        return unescape(theBigCookie.substring(firstChar, lastChar));
    } else { // If there was no cookie of that name, return false.
        return false;
    }
   }    
} // WM_readCookie

function WM_killCookie(name, path, domain) {
 var theValue = WM_readCookie(name); // We need the value to kill the cookie
 if(theValue) {
     document.cookie = name + '=' + theValue + '; expires=Fri, 13-Apr-1970 00:00:00 GMT' + ((path)?';path='
+ path:'') + ((domain)?';domain=' + domain:''); // set an already-expired cookie
 }
} // WM_killCookie


//Step One - See if there is a cookie, if so then redirect to the home.html page

if(WM_readCookie("test")){
 window.location.href = "home.html";
}
else{
 // Set the cookie for next time
 WM_setCookie("test", "true", "Thu, 31-Dec-2020 00:00:00 GMT");
}

// -->
</script>
</head>
<body>
<a href="home.html">Skip intro</a>
</body>
</html>
0
 
LVL 8

Author Comment

by:klykken
ID: 6374031
worked like a dream, thanx :)
--
klykken
0
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 

Expert Comment

by:XYuan
ID: 7933014
worked like a dream, thanx :)
--
XYuan
0
 

Expert Comment

by:XYuan
ID: 7933019
worked like a dream, thanx :)
--
XYuan
0
 

Expert Comment

by:XYuan
ID: 7933038
worked like a dream, thanx :)
--
XYuan
0
 

Expert Comment

by:XYuan
ID: 7933042
worked like a dream, thanx :)
--
XYuan
0
 

Expert Comment

by:XYuan
ID: 7933043
worked like a dream, thanx :)
--
XYuan
0
 
LVL 9

Expert Comment

by:Bob Stone
ID: 7933879
Then gimme points =o)
0
 
LVL 8

Author Comment

by:klykken
ID: 7934717
Xyuan should give you x5 as much points as I gave you ;-)
--
klykken
0
 
LVL 9

Expert Comment

by:Bob Stone
ID: 7934834
Which, in case he doesn't know, the point amount above (10) is 1/10 the original point value (100).
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to create and access 2-dimensional arrays in JavaScript.  It includes a tutorial in case you are just trying to "get your head wrapped around" the concept and we'll also look at some useful tips for more advanced programmers. …
JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

800 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