0

セッションCookieを設定したいときに、かなり奇妙なエラーが発生します。

次のルールを使用する場合:

session_set_cookie_params(0, '/', $_SERVER['HTTP_HOST'], false, true);
//$_SERVER['HTTP_HOST'] resolves into "jscripting.nl"

常に「。」を付けます。URLの前に置くと、すべてのサブドメインでsession_idにアクセスできるようになります。これは、サブドメインの1つで開発し、session_idが相互に干渉している可能性があるため問題です。

私が間違っていることはありますか、またはサーバーのセットアップに何か問題がありますか?

4

1 に答える 1

2

$_SERVER['HTTP_HOST']サーバーのセットアップとは関係ありません。クライアントが行うリクエストのホストヘッダーから取得されます。

サーバー側で構成されたサーバー名を使用する場合は、通常はを使用しますが$_SERVER['SERVER_NAME']、ホストヘッダーの影響を受ける場合もあります。

編集:明らかに、ドメインの値はデフォルトでドットを追加するため、サブドメインが含まれます。現在のドメインにのみ適用する唯一の有効な方法は、パラメータを設定しないか、生のヘッダーを使用してCookieを設定することです。 。このスレッドの件名について詳しくは、こちらをご覧ください。

nullドメイン名パラメータを設定することで、Cookieをhttponlyにして、自分のケースで機能させることができます。

于 2013-03-25T20:49:34.070 に答える