1

私のアプリケーションでは、アプリケーション内の特定のパスに Cookie を設定する必要があります。例 (php):

setcookie(*cookie_name*,*value*,*date*,"/subpath/subpath/unique_name");
setcookie(*cookie_name*,*value*,*date*,"/subpath/subpath/another unique name");

奇妙なことに、最初の setcookie は正常に動作します。2 番目はエラーを生成せず、Firefox で Cookie を表示すると、Cookie は正しい値で表示されます。ただし、コードでアクセスできません。空白が問題を引き起こしていると思いますが、Cookie パスのエンコード方法に関するドキュメントや仕様は見つかりませんでした。

以前にこの問題に遭遇した人はいますか? Cookie パスで特殊文字を処理する方法を知っている人はいますか?

4

3 に答える 3

2

Cookie のスペースに問題はありません。
値を読み返す方法を確認する必要があるかもしれません...
私の読み取りルーチンは次のとおりです。

function ReadCookie(name)
{
  name += '=';
  var parts = document.cookie.split(/;\s*/);
  for (var i = 0; i < parts.length; i++)
  {
    var part = parts[i];
    if (part.indexOf(name) == 0)
      return part.substring(name.length)
  }
  return null;
}

明らかに、エンコードする必要があるのはセミコロンだけです。

于 2008-12-03T20:56:41.420 に答える
0

実行している OS と Web サーバーは何ですか?

提案されているように、%20 または + エンコーディング スペースを試すことができます。

また、試しているパスは実際のディレクトリですか、それとも書き換えルールですか?

于 2008-12-03T20:46:48.990 に答える
0

Web サーバー ATM にアクセスできません。これらのいずれかを試したことはありませんか?

setcookie(*cookie_name*,*value*,*date*, "/subpath/subpath/another unique name/");
setcookie(*cookie_name*,*value*,*date*, urlencode("/subpath/subpath/another unique name"));
setcookie(*cookie_name*,*value*,*date*, rawurlencode("/subpath/subpath/another unique name"));

ブラウザーや Web サーバーが異なれば、これらの処理も異なる可能性があると思います。URL に空白を使用する必要がないことを願っています。

于 2008-12-03T20:29:39.057 に答える