[PHP-users 34098] URIに#を付けるとQUERY_STRINGが渡らない

HOTTA Michihide hotta @ net-newbie.com
2008年 10月 29日 (水) 17:11:33 JST


堀田@長崎市です。

$ cat index.html
<html><body>
<a href="next.php?hoge=fuga">#なし</a><br />
<a href="next.php#tag?hoge=fuga">#つき</a><br />
<a href="next.php&#x23;tag?hoge=fuga">文字参照</a><br />
</body></html>

こんなのを作って、QUERY_STRING を next.php に渡すところでハマり
ました。

$ cat next.php
<?php
printf("PHP_VERSION=%s<br />\n", PHP_VERSION);
print "\$_GET = "; print_r($_GET);
?>

1.「#なし」をクリック(想定された動作)

PHP_VERSION=5.2.5
$_GET = Array ( [hoge] => fuga ) 

2.「#つき」をクリック

PHP_VERSION=5.2.5
$_GET = Array ( ) 

3.「文字参照」をクリック
同上

URI に '#' が含まれる場合、QUERY_STRING が取れないようなのですが、
どう表記すればいいでしょうか?

PS.
まさかと思って HTTP ヘッダを見たら、そもそも GETコマンドの時点で
ブラウザから出て行ってないですね。全然 php ぢゃないし。
HTML初心者です教えてください。

-- 
HOTTA Michihide <hotta @ net-newbie.com>


PHP-users メーリングリストの案内