1

PHPSESSIDHTTPS を使用しており、作成したと にセキュア属性を設定したいと考えてcookiesいます。

session_set_cookie_params(0,'/','', isset($_SERVER["HTTPS"]));
session_start();
$data = session_get_cookie_params();
foreach ($data as $key=>$value) {
    echo $key.$value;
}

関数は機能しているように見えますが、実際には、セキュア属性が 1 にsession_get_cookie_params()等しいと出力されます。ドメイン属性を変更しても、同じ結果が得られます。
FirefoxFirebug+Firecookie

私は XAMPP、Ubuntu、および localhost で作業しています (localhost は、セキュリティの問題に対して特別な処理を行う必要があります)。ご協力いただきありがとうございます!

4

2 に答える 2

2

session nameを使用する場合はを使用してみてくださいsession_set_cookie_params

参照:
PHP session_set_cookie_params
PHP session_name

于 2012-06-21T07:31:57.213 に答える
1

同じ問題があり、 session_name() を使用しても役に立ちませんでした。Cookie を生成する session_start() を無効にし、次のように手動で Cookie を生成する必要がありました。

$sessionID = $_COOKIE[session_name()];
ini_set('session.use_cookies', false);
if ($sessionID) session_id($sessionID); // reuse if available
session_start();
// session_set_cookie_params() is not working with a "path" part
// this way every click is extending the session for $timeout more
setcookie(session_name(), $sessionID ?: session_id(), time() + $timeout, $cookiePath, $_SERVER['HTTP_HOST'], false, true);

x-powered-by: PHP/5.4.15

于 2014-11-12T17:21:55.470 に答える