Javascript define cookie

Something very bad is happening in this part of the code:

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
var username=getCookie("username");
if (username=="username"){
    document.getElementById(mydivx).style.display = 'block';  }else{
    document.getElementById(mydivx).style.display = 'none'; 
  }
}

and a button for determining the cookie:

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

So this should happen if you click the button, it defines a cookie with the name "username" with the value "username", the getcookie function gets the cookie username and its value.

What am I doing wrong?

Hope you help me guys!

EDIT: SOLUTION:

Just remove the ";" from the call and add individual quotes to the code using the button:

esconder

Thanks stealthyninja

+3
source share
4 answers

In your HTML code, replace

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

with

<a href="#" onClick="setCookie('username', 'username', 365); return false">esconder</a>

return false , href, (#) . , JavaScript, .



username . username undefined.

+2

setcookie , , :

<a href="#" onClick="setCookie('username',username,365); return true">esconder</a>
+1
<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

You have an error in this code. onClick = "and" username "... Try:

 <a href="#" onClick="setCookie('username','username',365);">esconder</a>
+1
source

Not sure if that's all, but this line:

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

There is a problem as you end the line. You use double quotes inside double quotes; try

<a href="#" onClick="setCookie('username',username,365); return true">esconder</a>
0
source

All Articles