0

I'm trying to create a script that when the user opens the site he or she will be welcomed by a prompt and after an alert will say welcome but also what is entered in the prompt will set a cookie for 1 minute the problems I'm facing are:
1. The alert does not show up
2. The Cookie will not set

function checkCookie()
{
    var username=getCookie("username");
    if (username!=null && username!="") {
        alert("Welcome again "+ username);  
    }
    else {
        username=prompt("Please input name:","");
        if (username !=null && username!="") {
            setCookie("username", username, 365);
        }
        else {
            alert("Error");
        }
    }
}
function setCookie (cname,cvalue,exdays)
{
    var d = new Date();
    d.setTime (d.getTime()+ (10*1000));
    var expires ="; expires= "+ d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires; +"; path /";
}
function getCookie(cname)
{
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++){
        var c = ca[i];
        while (c.charAt(0)==' ') {
            c = c.substring(1);
        }   
        if (c.indexOf(name) == 0){
            return c.substring(name.length, c.length);
        }
    }
    return "";
}
kumardeepakr3
  • 395
  • 6
  • 16

2 Answers2

0

Try replacing var expires ="; expires= "+ d.toGMTString(); with var expires ="; expires= "+ d.toUTCString();

The expire time is saved as Unix timestamp.

Edit: You need to execute the function checkCookie too. I thought that was obvious.

https://jsfiddle.net/osgohu5b/

0

Here is a jsfiddle of your code: https://jsfiddle.net/19yp8ucd/3/ . It works fine. You just need to call checkCookie() function.

checkCookie();

See the last line in .js of the fiddle.

Also, you're not using the number of days in your setCookie() function. You can check a good implementation of setCookie(), getCookie(), eraseCookie() here: https://stackoverflow.com/a/24103596/3946520

Community
  • 1
  • 1
kumardeepakr3
  • 395
  • 6
  • 16