フラグメントはパスの一部ではありません
この#
文字は、URL のフラグメント部分を指定します ( RFC 3986 ):
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
/ path-absolute
/ path-rootless
/ path-empty
したがって、フラグメント (wall
特に) は URL の別の部分であり、パスの一部とは見なされません。
パスは、最初の疑問符 (「?」) または番号記号 (「#」) 文字、または URI の終わりで終了します。
さらに、フラグメントはドキュメントの MIME タイプに依存し、ユーザー エージェント ( RFC 3986, 3.5. Fragment ) によって評価されます。つまり、フラグメントはサーバーに送信されません。
...フラグメント識別子は、URIのスキーム固有の処理では使用されません。代わりに、フラグメント識別子は
逆参照の前に残りの URI から分離される
ため、フラグメント自体内の識別情報は
、ユーザー エージェントによってのみ逆参照されます...
言い換えると、URL フラグメントは CookiePath
属性で機能することは想定されておらず、サーバーはフラグメントについて何も認識していないことが想定されています。
PHP 構文
また、+
は算術演算子であるため、"/" + $this->database + "/#wall"
は に評価され0
ます。連結を意味する場合は、.
代わりに (ドット) 演算子を使用します。
$s = 'abc';
echo "/" + $s + "/#wall", PHP_EOL;
echo "/" . $s . "/#wall", PHP_EOL;
echo "/{$s}/#wall", PHP_EOL;
出力
0
/abc/#wall
/abc/#wall
したがって、「算術」式を に置き換える必要があります"/{$this->database}/#wall"
。
それはうまくいくかもしれません...時々
現在のバージョンの Mozilla Firefox がさまざまなフラグメントを持つパスの Cookie を処理する方法をテストしました。順番に、実際にはdocument.cookie
さまざまなフラグメントの Cookie を書き込みますが、Cookie を更新するには、ページをハードリロードする必要があります。したがって、これが便利な機能であるとは思えません。