URL GET变量有一个必要的井号(URL GET variable has a necessary

2019-10-16 14:07发布

我创建一个URL链接和GET变量之一中有一个哈希符号。 哈希标记后,网页将无法读取任何数据。 我不能把它拿出来的原因有两个。

  1. 该网站数据库(不是我以任何方式设计的)对各项数据的哈希符号。 我没有授权编辑数据库。 而且我敢肯定,如果我没有其他的东西会打破。
  2. 我不能编辑URL的网页。 它是由别人设计的,并再次我没有任何权限进行编辑。

该网址看起来是这样的

         www.example.com?datapoint1=abc&datapoint2=#def

其中#def是必要的,因为该网页将在数据库中搜索这个确切的字符串。 如果我可以编辑网页的PHP我可以把散在必要的时候,但正如我所说,我不知道。

为了进一步说明了一点。 用户收集数据(在Java应用程序)和数据被放入一个长的URL(如上面的例子,但更复杂),并自动发送到与此链接到特定用户。 第二个用户点击链接,为所欲为,他/她必须做。

我认为唯一的办法就是编辑网页的PHP或JavaScript。 任何想法,将不胜感激。

Answer 1:

你必须编码#%23 ,所以你的URL看起来像这样:

www.example.com?datapoint1=abc&datapoint2=%23def

为了更方便,你可以使用PHP的内置功能进行urlencode: http://php.net/urlencode



Answer 2:

你需要躲避散列在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);
}


文章来源: URL GET variable has a necessary hash symbol
标签: php url