私は2つの "ドメイン"を越えてローカルで作業しています。私は私のマシン上にenterprise.local仮想ホストとapplication.local仮想ホストを持っており、 "local"または ".local"のドメインクッキーを設定する必要があります。私もこれを試してみた問題CookieをPHPで設定する
setcookie('iPlanetDirectoryPro', trim($token_id), '0', '/', '.local');
header('Location: /adcom-sso');
:
setcookie()
を使用して
header('Set-Cookie: iPlanetDirectoryPro=' . trim($token_id) . '; path=/');
header('Location: /adcom-sso');
は、クッキーがこれまでに設定されていないapplication.localでは、私はこれを持っています。 Set-Cookie
ヘッダーを使用すると、Cookie はに設定されます。私は両方からのリダイレクトを削除しました。結果は決して変更されません。それはSet-Cookie
で動作しますが、setcookie()
では動作しません。それは、すぐに私はそれがすべて故障したドメインを追加すると、私は本当に私が使用してソリューションの好みを持っていないので、細かいことはなく、Set-Cookie
溶液中になります。
header('Set-Cookie: iPlanetDirectoryPro=' . trim($token_id) . '; path=/; domain=local');
とすぐに私が追加しますドメインの値を取得すると、ヘッダーエラーが発生します:
Header may not contain more than a single header, new line detected.
私はドメインの値を "local"と ".local"として試しました。動作は変わりません。
私はめったに明示的にクッキーにアクセスする必要はないので、私は明らかに何かを見逃していることを望むが、確かにそれを見ない。どんな洞察も高く評価されるだろう。
更新:私はこれをもう少し絞り込んだと思います。ドメインの値が含まれていない限り、両方の方法でが動作するようです。クッキーの特定のドメインとして "local"または ".local"を使用する際に問題がありますか?
私は実際にそれらのすべてを試しました。もともと、私は全くトリミングしていませんでした。私もsetrawcookie()を試しましたが、簡単にするためにここには含めませんでした。 Set-Cookieソリューションでは、$ token_idを手動でurlencode()しようとしました。私はちょうどpreg_replace()のアイデアを試して、それは何も変更されませんでした。ありがとう。 –
"ヘッダーは含まれていない可能性があります"は、そこに改行がない限りトリガーされません。私はPHPのソースコード( 'sapi_header_op()')を見てきました。あなたは間違いなくそのエラーに改行問題があります。 – Inshallah
最終的に私が追跡したものがあなたの編集と一致しました。 ".local.com"を試してみるとすぐにすべてがスムーズに進みました。この場合、問題は私の "ドメイン"を単純に保つ私の開発環境のためでした。これは、本番環境に向けてスタック上で問題になることはありません。ご協力いただきありがとうございます。 –