0

我有一个 php 页面,我通过 post 收到一个名为rfc的 id ,但是,经过几次操作后,我再次调用同一页面,该页面最初由 POST 调用,但现在我将其设置为 PUT,因此在php的开始我有类似的东西:

if ($_SERVER['REQUEST_METHOD'] === 'PUT') {

    $pedidos = array();

    echo $_PUT['rfc'];

}

else {

    include("connectDB.php");
    $mySQL = new MySQL();
    $rfc=$_POST['rfc'];
    ......

我第一次使用 POST 从表单提交进入页面时,一切正常,但是当我执行 PUT 时,在同一页面上,错误日志显示:

未定义索引:rfc[...]

我认为 is else 块可以解决这个问题,但事实并非如此。

这是我做 PUT 的表格:

echo "<form action=\"checkout.php\" method=\"PUT\">";
    foreach ($pedidos as $key => $value) {
        echo "<input type=\"hidden\" name=\"pedidos[]\" value=\"$key\">";
        echo "<input type=\"hidden\" name=\"cantidades[]\" value=\"value\">";
        echo "<input type=\"hidden\" name=\"rfc\" value=\"$rfc\">";
    }
echo "<input type=\"submit\" value=\"Confirmar\">";

它声称未定义的行实际上是来自隐式 POST 块的行。

4

1 回答 1

2

那是因为$_PUT不存在。您需要做更多的工作来获取 PUT 数据。您基本上需要使用:

$data = file_get_contents('php://input')

(感谢@杰克)

于 2013-10-25T11:50:43.637 回答