我对代码中的订单有疑问。我想用一种语言创建一个cookie,然后使用函数l进行翻译。这是代码:
<script>
var lang = navigator.language;
if (document.cookie.indexOf("LANG=")==-1) {
if (lang=="pl"||lang=="en-US") {
document.cookie = "LANG="+lang+";domain=xxx;path=/";
} else {
document.cookie = "LANG=en-US;domain=xxx;path=/";
}
}
</script>
<?php
include 'translations.php';
function l($t) {
global $trsl;
$l = $_COOKIE['LANG'];
if ($l=="en-US") {
return $t;
} else {
return $trsl[$l][$t];
}
}
?>
我进入网站时发现的问题是,当您第一次进入网站时,它会显示一条错误消息,指出所请求的Cookie未定义。但是当我按下Ctrl + F5时,一切都恢复正常。我想php代码在js代码之前加载,但为什么呢?有什么方法可以阻止它吗?
答案 0 :(得分:0)
当您的意思是进入网站时,您的意思是第一次加载脚本?
您对每个脚本的处理位置感到困惑。你写的Javascript意味着在浏览器上加载和处理,而php将在主机上运行。因此,在浏览器中加载整个内容之前,php将被触发并运行。因此错误。
如果您感到困惑并想知道它是如何发生的,请触发chrome dev工具并切换到标签网络。然后打开页面并查看请求的标题部分(确保显示全部/ html)。然后按f5并比较之前的比较。您将看到在第二个请求中分配了cookie标头。
希望它能回答你的问题。