2012-05-07 8 views
0

同じサイトに対して2つのCookieを設定しようとしています。 (1除きHTTPであり、1は、HTTPSサイトです。)HTTP_SERVERはhttp://www.somesite.comが含まれていると仮定すると2つのドメインのCookieを設定する

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

とその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. 
} 

ここで、最初のsetcookieはセッションCookieを正しく設定しています。ただし、2行目には表示されません。

このコードを使用するにはどうすればよいですか?具体的にはこれを行うにはPHPを使用します。

答えて

1

cookieは、コ​​ードが実行されているドメインでのみ設定できます。あなたが得ることができる最も近いものはsomesite.comに設定されています。その場合はsomesite.comのすべてのサブドメインに送信されます

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

それ以外の場合は、任意のドメインのCookieを追加することはできません。

1

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

1つの以上のパラメータを使用すると、クッキーが安全であるかどうかを指定するために使用できることを、最後にあります。

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 
+0

これを行うと、クッキーリストに追加されません。 –

+1

おそらく、より良い答えは、.somesite.comのアプローチを使用することです。新しい答えをすぐにチェックしてください – Bryan

関連する問題