gpt4 book ai didi

php - $_SERVER ['REQUEST_METHOD' ] 不存在

转载 作者:行者123 更新时间:2023-12-04 15:54:45 26 4
gpt4 key购买 nike

我刚刚安装了 WAMP,我可以访问本地主机并获取 phpinfo() 输出。

但是,虽然我可以看到 _SERVER['REQUEST_METHOD'] 设置为 GET,但我正在尝试使用以下 PHP:

if ($_SERVER["REQUEST_METHOD"]=="POST") {
...

但它会产生这个错误:

PHP Notice: Undefined index: REQUEST_METHOD in C:\ ... \test.php on line 40

使用 Komodo 在第 40 行停止并检查 $_SERVER - 数组中根本没有“REQUEST_METHOD” - 甚至没有 GET。

有人有什么想法吗?我是否必须启用 POST、REQUEST_METHOD?

为什么我可以在 phpinfo 中看到 REQUEST_METHOD=GET 而在 PHP 脚本中却看不到。

我也试过这个:

<?php
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();
?>

我生成了一些 phpinfo(在浏览器中使用 localhost/?phpinfo=1 查看)但不是全部。为什么不呢?

最佳答案

大多数 $_SERVER 指令由网络服务器设置。如果您使用的是 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');
}

关于php - $_SERVER ['REQUEST_METHOD' ] 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com