【问题标题】:Why does this function not change the cookie?为什么这个函数不改变cookie?
【发布时间】:2018-10-08 14:02:48
【问题描述】:

我正在编码,但这似乎并没有改变这个 cookie。请给我建议。

function ChangeCookie(loginuser){
document.cookie = "user="+loginuser;
}

当我调用这个函数时,这个 cookie 似乎没有改变,相反,它什么也不做。我试图从这里转到

document.cookie = "user=loginuser"

但这也行不通。

编辑:我已经在控制台中尝试过它并且它有效,但这不适用于此 HTML。请告诉我这个 HTML 有什么问题

<?php
$cookie_name="user";
$cookie_value="anony"
setcookie($cookie_name, $cookie_value, time() + (86400 * 7), "/");
?>
<script>
function ChangeCookie(loginuser){
document.cookie = "user="+loginuser;
}
</script>
<html>
<head>
<title>Login</title>
</head>
<body>
<p>Please enter your username</p>
<form name="myForm" action="/index.html" onsubmit="return ChangeCookie(document.GetElementById("user"))" method="post">
<input type="text" id="user">
<input type="submit" value="Submit">
</form>
  </body>
  </html>

【问题讨论】:

  • 你在调用这个函数吗?
  • 你们为什么无缘无故地否决这个问题?
  • @Mehdi 我正在调用这个函数,但是 cookie 没有出现在 editthiscookie 中。
  • 可能是因为您没有发布任何解释或错误,所以问题没有显示调试工作。
  • 不客气,尝试调试代码。 cookie 是如何创建的?它可以从 JavaScript 访问吗?你是如何调用函数的?检查控制台是否有错误。

标签: javascript html cookies session-cookies


【解决方案1】:

尝试进行一些调试以查看您传递给函数的内容。一种方法是向控制台写入一些内容:

function ChangeCookie(loginuser) {
  // log the parameter value
  console.log(loginuser);
  document.cookie = "user="+loginuser;
}
// call the function immediately
ChangeCookie(loginuser);

//verify whether or not the value was set
console.log(document.cookie);

另一种方法是使用debugger

function ChangeCookie(loginuser) {
  debugger;
  document.cookie = "user="+loginuser;
}
ChangeCookie(loginuser);

如果您在打开控制台的情况下运行上述程序,它应该可以让您看到您传入的变量的值。您还可以通过控制台访问该变量。

【讨论】:

  • 这似乎在控制台中有效,但在 html 中无效。为什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 2015-10-14
  • 1970-01-01
  • 2018-04-21
  • 2020-10-03
相关资源
最近更新 更多