【问题标题】:PHP session changing on each request only on HTTP. Cookie not setting仅在 HTTP 上更改每个请求的 PHP 会话。 Cookie 未设置
【发布时间】:2020-12-18 17:32:33
【问题描述】:

我正在开展一个项目,客户将获得他们自己的模板网站。他们将获得自己的免费子域,默认为 http,示例如下。

http://www.jess-jewels.mytreatments.co.uk/info.php https://www.jess-jewels.mytreatments.co.uk/info.php

在安全链接上,您将看到 cookie PHPSESSID 设置正确,会话 ID 始终保持不变。

在非安全链接上,这会在页面加载时发生变化,并且浏览器中没有设置 PHPSESSID cookie,不确定原因。

此处的 PHP 会话信息:

Registered save handlers    files user
Registered serializer handlers  php_serialize php php_binary wddx
Directive   Local Value Master Value
session.auto_start  Off Off
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    /dev/urandom    /dev/urandom
session.entropy_length  32  32
session.gc_divisor  0   0
session.gc_maxlifetime  2880    2880
session.gc_probability  0   0
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.lazy_write  On  On
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/cpanel/php/sessions/ea-php70   /var/cpanel/php/sessions/ea-php70
session.serialize_handler   php php
session.upload_progress.cleanup On  On
session.upload_progress.enabled On  On
session.upload_progress.freq    1%  1%
session.upload_progress.min_freq    1   1
session.upload_progress.name    PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix  upload_progress_    upload_progress_
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_strict_mode Off Off
session.use_trans_sid   0   0```

【问题讨论】:

    标签: php session-cookies


    【解决方案1】:

    终于通过覆盖cookie让它工作了:

    session_start();
    $params = session_get_cookie_params();
    setcookie("PHPSESSID", session_id(), 0, $params["path"], $params["domain"],
        false,  // this is the secure flag you need to set. Default is false.
        true  // this is the httpOnly flag you need to set
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-30
      • 2013-02-02
      • 2015-08-10
      • 1970-01-01
      • 2016-06-01
      • 2021-10-20
      • 1970-01-01
      • 2011-04-17
      相关资源
      最近更新 更多