关于url中的奇怪问题

关于url中的奇怪问题,url,get,Url,Get,及 我在第一个文件中未能检索到$\u GET['formid',为什么 test/editformquestions.php的内容很简单: http://localhost/test/editformquestions.php?formid=1 是哈希字符,不是GET变量 你需要把这个放进去吗?在任何哈希之前,否则将不会填充$\u GET数组。哈希之后的字符将由浏览器使用,不会发送回服务器。是URL的片段标识符: 要将其用作数组变量的一部分,您需要对其进行url编码: url编码时变为“%23

我在第一个文件中未能检索到$\u GET['formid',为什么

test/editformquestions.php的内容很简单:

http://localhost/test/editformquestions.php?formid=1
是哈希字符,不是GET变量


你需要把这个放进去吗?在任何哈希之前,否则将不会填充$\u GET数组。

哈希之后的字符将由浏览器使用,不会发送回服务器。

是URL的片段标识符:

要将其用作数组变量的一部分,您需要对其进行url编码:

url编码时变为“%23”


在javascript中,您可以使用函数

完成url编码。HTTP url可能包含以下部分:

协议:http:// 域:本地主机 路径:/test/editformquestions.php 查询字符串:?formid=1-始终以? 片段:标记后面的任何东西都不会发送到服务器。 您在第一个示例中看到了什么http://localhost/test/editformquestions.php?formid=1 是包含以下内容的片段:?formid=1。有什么问题都无所谓?在片段中;一旦它位于后面,它就不会从浏览器发送

因此,本质上,您只向服务器发送以下内容:http://localhost/test/editformquestions.php -如您所见,该请求中没有formid。

由浏览器使用,并且从不发送到服务器。之后的所有内容,无论它是什么,都被浏览器用来跳转到页面上的某个位置

因此:

将按如下方式进行拆分:

服务器请求到http://localhost/test/editformquestions.php 浏览器然后在第页中搜索:

http://localhost/test/editformquestions.php#?formid=1
或者,如果需要在查询字符串参数中输入:

http://localhost/test/editformquestions.php?formid=1&othervar=2#anchorinpage

好的,告诉我我没有得到什么。包含的第一个url也向test/editformquestions.php发送请求,但无法检索该文件中的$\u get参数。当然,它会转到editformquestions.php。但是由于前面的字符,它没有传入GET变量。请参阅上面其他更深入的答案。事实上,我是在问:为什么不填充$\u GET数组?如果您编写了?form=1就可以了。因为querystring解析器忽略它,因为它看到的不是?char,因此它停止执行。请重新表述您的问题,因为下面给出的正确答案没有解决您没有明确提出的问题?它在前面?而不是后面!
http://localhost/test/editformquestions.php#?formid=1
<a name="?formid=1">named anchor tag</a>
http://localhost/test/editformquestions.php?formid=1&othervar=2#anchorinpage
http://localhost/test/editformquestions.php?formid=1&othervar=textwith%23init