Teo*_*dor 32 php cookies setcookie
我正在使用多语言网站,所以我尝试了这种方法:
echo $_COOKIE["lg"];
if (!isset($_COOKIE["lg"]))
setcookie("lg", "ro");
echo $_COOKIE["lg"];
Run Code Online (Sandbox Code Playgroud)
我们的想法是,如果客户端没有lgcookie(因此,这是他们第一次访问此站点),那么lg = ro为该用户设置一个cookie .
一切正常,但如果我第一次进入这个页面,第一次和第二次echo都没有返回.只有当我刷新页面时才设置cookie,然后echo打印出我期待的"ro"字符串.
如何设置此cookie以便echo在第一次访问/页面加载时从第二个看到它的值?应该无需刷新页面或创建重定向.
Tre*_*non 82
你不能根据PHP手册:
设置cookie后,可以使用$ _COOKIE或$ HTTP_COOKIE_VARS数组在下一页加载时访问它们.
这是因为cookie在响应头中发送到浏览器,然后浏览器必须在下一个请求时将它们发回.这就是为什么它们仅在第二页加载时可用.
但是你也可以通过设置$_COOKIE电话来解决它setcookie():
if(!isset($_COOKIE['lg'])) {
setcookie('lg', 'ro');
$_COOKIE['lg'] = 'ro';
}
echo $_COOKIE['lg'];
Run Code Online (Sandbox Code Playgroud)
0b1*_*011 10
Cookie 仅在请求时发送,因此无法在分配后立即检索(仅在重新加载后可用).
设置cookie后,可以使用$ _COOKIE或$ HTTP_COOKIE_VARS数组在下一页加载时访问它们.
如果在调用此函数之前存在输出,则setcookie()将失败并返回FALSE.如果setcookie()成功运行,它将返回TRUE.这也没有指示用户是否接受该cookie.
在下一次加载可以看到cookie 的页面之前,Cookie不会显示.要测试cookie是否已成功设置,请在cookie过期前检查下一个加载页面上的cookie.过期时间通过expire参数设置.调试cookie存在的一种好方法是简单地调用print_r($ _ COOKIE);.
| 归档时间: |
|
| 查看次数: |
139625 次 |
| 最近记录: |