PHP是否默认为所有子域设置会话cookie?

PHP是否默认为所有子域设置会话cookie?,php,session,Php,Session,我不知道这段引语应该如何解释: session.cookie\u domain指定要在会话中设置的域 曲奇默认值为none,表示服务器的主机名 它根据cookies规范生成cookie 这是否意味着在URL www.somedomain.com/somepage.php上调用session\u start时,cookie将具有以下形式: Set-Cookie PHPSESSID=e48gh5mqggccgmn8172f0j5a06; path=/; domain=.somedomain.com

我不知道这段引语应该如何解释:

session.cookie\u domain指定要在会话中设置的域 曲奇默认值为none,表示服务器的主机名 它根据cookies规范生成cookie

这是否意味着在URL www.somedomain.com/somepage.php上调用
session\u start
时,cookie将具有以下形式:

Set-Cookie  PHPSESSID=e48gh5mqggccgmn8172f0j5a06; path=/; domain=.somedomain.com

我在索引页面上看到了第一个cookie头,在其他页面上看到了没有域的头

有人能对此有所了解吗


谢谢

否,php通常会为当前域设置cookie,例如:ww.domain.com。 要使所有内容保持一致,必须将所有请求重定向到同一个域,或者为所有子域显式设置cookie


编辑:事实上,Firefox也是如此。我认为PHP实际上不会设置域,因此浏览器可以自由使用他想要的任何东西。我认为Internet Explorer会为任何子域设置它

它会为客户端浏览器中可见的域设置cookie(因此,您的问题中的选项2)。如果要为所有子域设置cookie,应调用
“.domain.com”
,并将其放入
$domain
参数中。

默认情况下,无PHP从不为所有子域设置会话cookie

如果要跨所有子域设置cookie,则可以使用以下代码:

<?php
$currentCookieParams = session_get_cookie_params();

$rootDomain = '.example.com';

session_set_cookie_params(
    $currentCookieParams["lifetime"],
    $currentCookieParams["path"],
    $rootDomain,
    $currentCookieParams["secure"],
    $currentCookieParams["httponly"]
);

session_name('mysessionname');
session_start();

setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain);
?>


如需参考,请访问

。谢谢。PHP实际上不会费心设置域,因此它将发送的cookie是:
set cookie PHPSESSID=e48gh5mqggccgmn8172f0j5a06;路径=/
留给浏览器解释。需要进一步调查,以确定哪些浏览器做什么,但我想这并不重要。
<?php
$currentCookieParams = session_get_cookie_params();

$rootDomain = '.example.com';

session_set_cookie_params(
    $currentCookieParams["lifetime"],
    $currentCookieParams["path"],
    $rootDomain,
    $currentCookieParams["secure"],
    $currentCookieParams["httponly"]
);

session_name('mysessionname');
session_start();

setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain);
?>