哈希变量和mycookie变量是相同的,但我没有收到消息。我在这里缺少什么?
var hash= "f353fbe0acb344e5cc6240daef41de27";
if (hash == <?php echo $_COOKIE[mycookie]; ?>) var text = "the same";
document.write(text);
答案 0 :(得分:1)
这是一个字符串,所以你需要引用它:
if (hash == "<?php echo $_COOKIE[mycookie]; ?>") var text = "the same";
请注意,cookie内容可以由用户设置,因此您需要确保不要打开XSS漏洞。
更好的方法是对JSON进行编码(将添加引号):
if (hash == <?php echo json_encode($_COOKIE[mycookie]); ?>) var text = "the same";
答案 1 :(得分:0)
基本问题是你试图在没有:
的情况下调试JavaScript除非您的Cookie 值包含引号(我怀疑),否则您将hash
与未声明的变量进行比较。
使用json_encode
将PHP变量转换为JavaScript文字:
hash == <?php echo json_encode($_COOKIE[mycookie]); ?>
请注意,这将正确地转义JS字符串文字中不允许(原始)的任何字符(例如引号,反斜杠和新行)(仅包含带有"
字符的PHP不会做)。