为什么我无法使用PHP的setcookie()设置cookie名称?

时间:2013-11-29 01:02:24

标签: php cookies setcookie

我正在尝试使用以下代码来设置cookie:

<?php
    setcookie("sid",      // Name
        session_id(),         // Value
        0,                    // Expiry
        "/",                  // Path
        ".mysite.com",        // Domain
        true,                 // HTTPS Only
        true);                // HTTP Only
    session_start();
    ...

根据我的代码,名称应为“sid”,但cookie名称始终为“PHPSESSID”。但是,如果我在session_name("sid");之前添加session_start(),则会话名称IS设置为“sid”。我做错了什么?

1 个答案:

答案 0 :(得分:0)

session_start使用session.name配置值创建会话Cookie。

session_name可用于覆盖默认值。您应该使用它(或在php.ini中全局配置它),而不是手动尝试设置Cookie,因为session_start不知道您的自定义sid Cookie表示与会话相关的任何内容 - 所有PHP都知道,无论用户名是否为Sid,该cookie都可能存储。