我刚刚安装WAMP和我可以访问本地主机,并获得phpinfo()函数的输出。
然而,尽管我可以看到_SERVER [“REQUEST_METHOD”]设置为GET,我尝试使用下面的PHP:
if ($_SERVER["REQUEST_METHOD"]=="POST") {
...
但它会产生这个错误:
PHP公告:未定义指数:REQUEST_METHOD在C:\ ... \ test.php的第40行
使用科莫多停在40行,检查$ _ SERVER - 它没有数组中的“REQUEST_METHOD”的话 - 连得。
有人有主意吗? 我一定要启用POST,REQUEST_METHOD?
为什么我可以看到REQUEST_METHOD = GET中的phpinfo,但不是在PHP脚本。
我也试过这样:
<?php
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();
?>
I(使用本地主机/?的phpinfo如在浏览器中查看= 1)产生了一些的phpinfo的但不是全部。 为什么不?
多数$ _ SERVER指令由Web服务器设置。 如果您正在使用WAMP这将是Apache的。 你可以检查你的Apache配置,找出为什么这个值未设置。
这是更好尝试使用它们之前测试的存在价值。
$value = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : null;
你甚至可以使用的getenv()方法来缩短这个。
$value = getenv('REQUEST_METHOD');
也没有必要做
<?php
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();
?>
这是你在一个空白的PHP文件需要。
<?php phpinfo();
我会写你的例子是这样的:
$request_method = strtoupper(getenv('REQUEST_METHOD'));
$http_methods = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS');
if( ! in_array($request_method, $http_methods)
{
die('invalid request');
}