$HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同)。 如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_POST 和 $HTTP_POST_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 HTTP 文件上传变量:$_FILES 注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_FILES。 通过 HTTP POST 方法传递的已上传文件项目组成的数组。是自动全局变量。 这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_FILES; 来访问它,就如同使用 $HTTP_POST_FILES 一样。 $HTTP_POST_FILES 包含着同样的信息,但是不是一个自动全局变量(请注意 PHP 是把 $HTTP_POST_FILES 和 $_FILES 这两个变量当作不同的变量来处理的)。 如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_FILES 和 $HTTP_POST_FILES 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 Request 变量:$_REQUEST 注: 在 PHP 4.1.0 及以后版本使用。之前的版本,没有等价的数组。 注: 在 PHP 4.3.0 之前,$_FILES 也被包括在 $_REQUEST 数组中。 此关联数组包含 $_GET,$_POST 和 $_COOKIE 中的全部内容。 这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味着它在所有的脚本中都有效。在函数或方法中不需要使用 global $_REQUEST; 来访问它。 如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_REQUEST 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 Session 变量:$_SESSION 注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_SESSION_VARS。 包含当前脚本中 session 变量的数组。参阅 Session 函数文档以获得更多信息。 这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_SESSION; 来访问它,就如同使用 $HTTP_SESSION_VARS 一样。 $HTTP_SESSION_VARS 包含着同样的信息,但是不是一个自动全局变量(请注意 PHP 是把 $HTTP_SESSION_VARS 和 $_SESSION 这两个变量当作不同的变量来处理的)。 如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_SESSION 和 $HTTP_SESSION_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 Global 变量:$GLOBALS 注: $GLOBALS 在 PHP 3.0.0 及以后版本中适用。 由所有已定义全局变量组成的数组。变量名就是该数组的索引。 这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $GLOBALS; 来访问它。 前一个错误消息:$php_errormsg $php_errormsg 是包含 PHP 产生的上一错误消息内容的变量。该变量在发生错误并且 track_errors 选项打开(默认为关闭)后才有效。 add a note User Contributed Notes 预定义变量 danvasile at pentest dot ro 22-Mar-2007 04:22 If you have problems with $_SERVER['HTTPS'], especially if it returns no values at all you should check the results of phpinfo(). It might not be listed at all. Here is a solution to check and change, if necessary, to ssl/https that will work in all cases:
<?php if ($_SERVER['SERVER_PORT']!=443) { $sslport=443; //whatever your ssl port is $url = "https://". $_SERVER['SERVER_NAME'] . ":" . $sslport . $_SERVER['REQUEST_URI']; header("Location: $url"); } ?> Of course, this should be done before any html tag or php echo/print. bosmeew at gmail dot com 18-Feb-2007 10:43 To get the server address, you can use $_SERVER['SERVER_ADDR']. However, this only works when your PHP process is running on a webserver, not when running PHP as CLI. Here is a function which will also return the server address when running on linux (eth0 is hardcoded as the network interface, modify if necessary). |