我创建一个URL链接和GET变量之一中有一个哈希符号。 哈希标记后,网页将无法读取任何数据。 我不能把它拿出来的原因有两个。
- 该网站数据库(不是我以任何方式设计的)对各项数据的哈希符号。 我没有授权编辑数据库。 而且我敢肯定,如果我没有其他的东西会打破。
- 我不能编辑URL的网页。 它是由别人设计的,并再次我没有任何权限进行编辑。
该网址看起来是这样的
www.example.com?datapoint1=abc&datapoint2=#def
其中#def是必要的,因为该网页将在数据库中搜索这个确切的字符串。 如果我可以编辑网页的PHP我可以把散在必要的时候,但正如我所说,我不知道。
为了进一步说明了一点。 用户收集数据(在Java应用程序)和数据被放入一个长的URL(如上面的例子,但更复杂),并自动发送到与此链接到特定用户。 第二个用户点击链接,为所欲为,他/她必须做。
我认为唯一的办法就是编辑网页的PHP或JavaScript。 任何想法,将不胜感激。
你必须编码#
为%23
,所以你的URL看起来像这样:
www.example.com?datapoint1=abc&datapoint2=%23def
为了更方便,你可以使用PHP的内置功能进行urlencode: http://php.net/urlencode
你需要躲避散列在URL中,如果你不希望它成为散列部。 对于该urlencoded的字符#
是%23
。
您可以使用urlencode()
php.net DOC )在PHP在PHP逃跑值。
你可能也想知道http_build_query_string()可以生成URL查询,并从一个键值数组正确编码值。 退房php.net例子以获取更多信息。
如果您无法访问PHP,但可以使用JS(这是次优的),你可以作出这样的重写URL时,看到一个哈希出现一个小脚本(只会工作,如果哈希永远不存在以其他方式)
if(window.location.hash) {
// Hash detected, lets rebuild the url
window.location.href = window.location.href + '%23' + window.location.hash.slice(1);
}