美元服务器[";PHP\u SELF";]的原因是什么

美元服务器[";PHP\u SELF";]的原因是什么,php,Php,有人知道在PHP表单的操作中不使用同一个页面有什么好处(或安全原因)吗 下面是指定为操作的当前页面: <form action="welcome.php" method="post"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form>

有人知道在PHP表单的操作中不使用同一个页面有什么好处(或安全原因)吗

下面是指定为操作的当前页面:

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

名称:
电子邮件:
这里也是,但通过一个超级全局的PHP

<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

出于安全原因,您不应该以这种方式使用
$\u服务器[“PHP\u SELF”]
。这是因为您将包含所有参数的完整路径打印到您的站点,并且存在XSS问题

如果您想将表单发送到同一个站点,可以非常简单地使用


或者键入完整的文件名,以防止向网站添加所有参数


下面是另一篇如何保护该部件的帖子

当然,它的优点是,当您使用$\u服务器时,是否移动页面或重命名文件并不重要。这真的是唯一的优点吗?无论如何,谢谢你的评论!
<form action="#" method="post">