0

rfcというIDをポストで受け取る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 に答える