2012-03-13 10 views
0

PHPのマニュアルは、このここでPHP cookieが保存されていますか?

setcookie ($name, $value, $expire, $path, $domain, $secure, $httponly) 

ようsetcookies構文を持っていることは、クッキーは、クライアント側でリモートから上に格納されていると言われています。適用されたクッキーがサーバー側に格納される場合、構文にはパスvarがあります。

ここで、そのパスに "/"を付けたとします。とにdenishログという名前のユーザーと私のユーザー名のCookieを作成する上での機能

setcookie('site_username','denish',time + 3600,'/','.xyz.com') 

今すぐたびに異なるユーザーがログインする私を覚えている。それはオーバー前のクッキーや新しいクッキーが作成されます書きますか?

クッキークライアント側を作成し、$ domain varを適用したい場合はどうすればいいですか?出来ますか?

答えて

0

あなたはmanualからパス引数を使用すると、誤っている:

クッキーが上で利用できるようになるには、サーバー上のパス。

クッキーは常にクライアントのマシンに保存されます。

+0

はい、あなたは正しいです。私はパスを理解するのが間違っていた。ありがとうございました。 –

4

クッキーは常にクライアントに格納されます。パスは、リモートページが前記クッキーにアクセスできるものに制限を設定するだけです。たとえば、パス "/ foo /"でCookieを設定すると、ディレクトリ "/ foo /"とサブディレクトリ "/ foo /"のページだけがCookieを読み取ることができます。

ドメインには同じ制限があり、サブドメインでのみ使用できます。

同じ名前のCookieが互いに上書きされます。はい。

私は、あなたがセキュリティ上の問題のためにあなたがいるページ以外の別のドメインにクッキーを設定することはできないと信じています。

+0

ありがとう@mroselli –

0

異なる$pathを使用する場合は、同じ名前の2つのCookieを使用できます。

setcookie("foobar", "root", time()+3600, "/"); 
setcookie("foobar", "test", time()+3600, "/test"); 

最初クッキー(ルート)/test/*を除いて、このドメイン内の任意$pathを使用してアクセスすることができます。 /test/*では、2番目のクッキーにのみアクセスできます。どちらのCookieもユーザーのブラウザに保存され、ブラウザは現在のURLと一致するCookieの$pathに基づいて提供するCookieを決定します。

関連する問題