skree
08-19-2003, 02:44 PM
I'm really having some trouble with JavaScript cookies. I don't code JavaScript at all really but now I need these fews lines to complete this project. Basically I have some code, but I only want it to run once per user. So I want to set a cookie that time's out after 24 hours so they see it once per day.
If you can please write up this code for me I would be grateful. I'm sure its just a simple...
If Check...Cookie Exists
'Don't run code
If Cookie Doesnt Exist
Run Code Create Cookie
But somehow to me this is extremely complicated lol.
Khalid Ali
08-19-2003, 02:52 PM
may be this will help you..
http://www.webapplikations.com/pages/html_js/document/SimpleLoginCookieScript.html
Try this example
<SCRIPT language=JavaScript>
<!--
var expDays = 1; // number of days the cookie should last
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,expires) {
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 DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function checkCount() {
var count = GetCookie('poponce');
if (count == null) {
count++;
SetCookie('poponce', count, exp);
// Action to take
dothis()
}
}
function dothis(){
var windowprops = "left=50,top=150,width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no"; window.open("yourpage.htm", "", windowprops); // Use to load a page
}
// -->
</SCRIPT>
Insert the onLoad event handler into your BODY tag.
<BODY OnLoad="checkCount()">