Cookie无法处理php会话文件:

Cookie无法处理php会话文件:,php,session,cookies,Php,Session,Cookies,我尝试了以下方法: 基本上,它应该说:如果没有cookie,那么从web浏览器获取lang(这部分工作正常,这是lang.php)的工作)。如果存在cookie,会话将从cookie中获取其值。如果什么都没有,就用英语写吧 session.php: }) 的第一个参数是cookie名称,第二个参数是cookie值。因此在本例中,$\u SESSION['lang']是cookie名称,time()+(3600*24*30)值: setcookie($_SESSION['lang'], time

我尝试了以下方法:

基本上,它应该说:如果没有cookie,那么从web浏览器获取lang(这部分工作正常,这是
lang.php
)的工作)。如果存在cookie,会话将从cookie中获取其值。如果什么都没有,就用英语写吧

session.php

})

的第一个参数是cookie名称,第二个参数是cookie值。因此在本例中,
$\u SESSION['lang']
是cookie名称,
time()+(3600*24*30)
值:

setcookie($_SESSION['lang'], time() + (3600 * 24 * 30));
要添加的参数如下所示:

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
因此,您使用它的方式似乎有点奇怪。(说的没错。)我会认为

setcookie('lang', $_SESSION['lang'], time() + (3600 * 24 * 30));

…会更明显一点,也许这就是你想要的。(这是$_COOKIE['lang']需要的。)

@Gumbo我有setcookie($_SESSION['lang'],time()+(3600*24*30))@是的,这就是重点。您没有指定cookie名称。或者更具体地说:您将
$\u SESSION['lang']
的值指定为cookie name,将
time()+(3600*24*30)
的值指定为cookie value。我想您是对的,我必须指定名称“lang”。这起到了作用:setcookie(“lang”,“$”会话['lang',time()+(3600*24*30));Thanks@middaparka哈哈,对不起,我错了。
setcookie('lang', $_SESSION['lang'], time() + (3600 * 24 * 30));