这个php表单如何在不定义变量的情况下工作


how does this php form work without defining variable?

如果不定义$SCRIPT_NAME变量,这个php表单如何工作?

<form action="<?php echo $SCRIPT_NAME ?>" method="post">

此代码依赖于古老的、弃用的和可怕的register_globals功能,该功能从所有$_REQUEST$_COOKIE$_SERVER字段创建全局变量。

我强烈建议您删除此代码并禁用register_globals设置。

有一个变量$_SERVER['SCRIPT_NAME'],它打印出当前脚本的名称。你可以在这里找到一些信息:http://php.net/manual/en/reserved.variables.server.php

我怀疑这就是被使用的东西。

变量$_SERVER['PHP_SELF']将提供执行脚本的相对路径,变量$_SERVER['SCRIPT_NAME']将提供当前脚本名称。

另一种选择是使用$_SERVER['SCRIPT_FILENAME']或常量FILE,它们分别给出绝对路径。

应该优先使用这些功能,而不是像@ThiefMaster所说的那样使用register-globals功能。