2011-05-05 41 views
1

这个php表单如何在不定义$ SCRIPT_NAME变量的情况下工作?这个php表单如何在没有定义变量的情况下工作?

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

你想让表单提交时调用脚本本身吗? – Eldros 2011-05-05 08:25:51

+0

如果该变量有一个值,那么该值将分配给*某处*。也许不是在表单旁边,但是如果你对'SCRIPT_NAME'使用'grep',你一定会找到它。 – Jon 2011-05-05 08:26:00

+1

什么是输出HTML? – 2011-05-05 08:27:11

回答

4

此代码依赖于古老,过时,可怕register_globals功能,创建一个从所有$_REQUEST$_COOKIE$_SERVER领域的全局变量。

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

1

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

我会怀疑这是什么使用。

+0

他没有使用'$ _SERVER' – diEcho 2011-05-05 08:25:59

+0

在这种情况下,register_globals可能在php配置中启用 - 通常是一个坏主意。这意味着您不必具体引用PHP提供的一些全局变量(如$ _SERVER),但它可能会导致安全问题:http://php.net/manual/en/security.globals.php – 2011-05-05 08:31:11

0

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

另一种方法是使用$_SERVER['SCRIPT_FILENAME']或常数FILE,它们各自给出绝对路径。

这些应该是首选,而不是使用register-globals功能,应该禁用@ThiefMaster所说的功能。

相关问题