4

私はクッキーなどのビギナーです。

のようなフォルダ内のページからドメイン全体に Cookie を設定する必要がありますmydomain.com/folder/page.php。以前にこれを行う必要がありmydomain.com/another.php、Cookie を設定する別のページにリダイレクトすることで完了しました。フォームやその他のものからのデータがあるため、ページをリダイレクトするべきではありません。どうすればこれを行うことができますか?

setcookie("name", $name, time()+31536000);内部のページに対してのみ Cookie を設定しますがfolder、試してみsetcookie("name", $name, time()+31536000,'/','mydomain.com');ましたが、うまくいきませんでした。

4

2 に答える 2

14

このコードは間違いなく機能します:

setcookie("name", $value, time()+31536000,'/');

はまたはとmydomain.comは異なることに注意してください。www.mydomain.comsub.mydomain.com

これ以外に、 の値は$value文字列でなければならないことに注意してください。

于 2011-04-07T22:08:41.343 に答える
1

@SPL_Splinter:出力の前に Cookie を設定していることを確認してください。たとえば、次のようになります。

<?php
$name = 'Some name';

setcookie("name", $name, time() + 31536000, '/', '.mydomain.com');
if (isset($_COOKIE['name'])) 
{
    echo $_COOKIE['name'];
}
?>

アップデート

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

Cookie を使用できるドメイン。example.com のすべてのサブドメイン (example.com 自体を含む) で Cookie を使用できるようにするには、「.example.com」に設定します。一部のブラウザーは、最初の . がなくても Cookie を受け入れますが、 » RFC 2109 では、それを含める必要があります。ドメインを「www.example.com」または「.www.example.com」に設定すると、Cookie は www サブドメインでのみ使用可能になります。

于 2011-04-07T22:09:49.583 に答える