0

各リクエストのリクエストパラメータを返す関数があります。

    private function GetRequestParams() {
    $method = $_SERVER['REQUEST_METHOD'];
    switch (strtolower($method)) {
        case 'put':
            $this->requestParams = //parse_str(HttpResponse::getRequestBody())
            $this->requestParams = array_map('urldecode', $this->requestParams);
            break;
        case 'post':
            $this->requestParams = $_REQUEST;
            break;
        case 'get':
            $this->requestParams = $_GET;
            break;
        case 'delete':
            $this->requestParams = $_REQUEST;
            break;
        default:
            $this->requestParams = $_REQUEST;
    }
}

しかし、GETとPOSTで同じURLを呼び出すと、$_POSTパラメーターは空になります。WizToolsRestClientとXAMPPツールのApacheServerを使用して、次のURLを呼び出します。 http://localhost:80/project/?item=1

GETの場合、リクエストパラメータには「アイテム」が正しく含まれていますが、POSTの場合、リクエストパラメータは空です。

postメソッドは次の関数として正しく検出され、postDescription()メソッドに正しく送信されているようです。

$method = strtolower($_SERVER['REQUEST_METHOD']) . 'Description';

php.ini post_max_size = 8 * M *を8* MB *に編集するための情報を見つけましたが、それはうまくいきませんでした。

4

4 に答える 4

6

$_GETURLのクエリ文字列からのデータが入力されます。

$_POST投稿メッセージの本文からのデータが入力されます。

POSTリクエストを作成したが、クエリ文字列でデータを渡した場合、データは$_GETnotに表示され$_POSTます。

于 2012-06-15T19:18:11.467 に答える
1

$_POSTはHTMLフォームで埋められます。フォームがあり、method = "POST"を使用する場合、フォームの結果はPOSTに配置されます。それ以外の場合、フォームからmethod = "get"を使用するか、クエリ文字列(たとえば、index.php?foo = bar&this = that)を使用すると、結果は$_GETになります。

ただし、一般的に$_REQUESTを使用しても安全です。

于 2012-06-15T23:15:18.110 に答える
0

なぜ最初に両方をチェックするのかよくわかりませんが$_GET、URLで送信されたパラメーターを取得します(これがあなたのやり方です)が$_POST、サーバーに「投稿された」データを取得します...通常はフォームを介してある種の

あなたの究極の目標は何ですか?

于 2012-06-15T19:21:25.593 に答える
0

まず、コメントの一部で言及されているように、$_REQUESTを使用しないでください。

http://php.net/manual/en/reserved.variables.request.phpから

Note: 
The variables in $_REQUEST are provided to the script via the GET, POST,
and COOKIE input mechanisms and therefore could be modified by the remote user
and cannot be trusted.
The presence and order of variables listed in this array is defined according
to the PHP variables_order configuration directive.

そして、Quentinがすでに彼の回答で述べているように、POSTリクエストを行う場合は、POSTデータを本文で送信する必要があります

ウィキペディアからhttp://en.wikipedia.org/wiki/POST_(HTTP

名前=Jonathan+ Doe&Age = 23&Formula = a +%2B + b +%3D%3D + 13%25%21

よろしく

于 2012-06-15T19:26:48.183 に答える