0

同じサイトに 2 つの Cookie を設定しようとしています。(ただし、1 つは HTTP サイトで、もう 1 つは HTTPS サイトです。)

 $cookie_domain_http = parse_url(HTTP_SERVER);
 $cookie_domain_https = parse_url(HTTPS_SERVER);

HTTP_SERVER にhttp://www.somesite.comが含まれ、 HTTPS_SERVER にhttps://ssl1.otherdomain.comが含まれていると仮定すると、以下を使用しています。

   setcookie("referrer_key",
     $_GET['referrer'],
     time() + 60*60*24*365,
     $cookie_domain_http['path'], 
     $cookie_domain_http['host']); // Set the cookie for the non-HTTPS version.

if(ENABLE_SSL == "true") {
   setcookie("referrer_key",
     $_GET['referrer'], 
     time() + 60*60*24*365, 
     $cookie_domain_https['path'], 
     $cookie_domain_https['host']); // Set the cookie for HTTPs version.
}

1 つ目setcookieは、セッション cookie を正しく設定することです。ただし、2行目では表示されません。

このコード、特に PHP を使用してこれを行うにはどうすればよいですか。

4

2 に答える 2

2

コードが実行されている 1 つのドメインにのみ Cookie を設定できます。最も近いのは somesite.com に設定することです。この場合、somesite.com のすべてのサブドメインに送信されます。

同じコードで somesite.com と othersite.com の両方に Cookie を設定することはできません。

それ以外の場合は、任意のドメインに Cookie を追加することを妨げるものは何もありません。

于 2012-05-07T05:18:23.030 に答える
1

http://php.net/manual/en/function.setcookie.php

最後にもう 1 つのパラメーターがあり、Cookie が安全かどうかを指定するために使用できます。

if (ENABLE_SSL == "true") 
  setcookie("referrer_key", 
  $_GET['referrer'], 
  time() + 60*60*24*365, 
  $cookie_domain_https['path'], 
  '.somesite.com', // Parse out the base domain, and put it here with the leading "."
  true); //this is the parameter to set specify a secure cookie
于 2012-05-07T05:03:31.913 に答える