web-dev-qa-db-ja.com

フォームの送信時にすべてのPOST結果を印刷するにはどうすればよいですか?

テストのためにサーバーに送信されるPOSTの結果をすべて表示する必要があります。

そのフォームで送信されたすべてのフィールドをエコーアウトする新しいファイルを作成して送信する方法の例は何ですか?

動的であるため、一部のフィールドはfield1, field2, field3などの名前/ IDを持つ場合があります。

67
Zoolander

すべての値は$_POSTコレクションに保存されます

<?php print_r($_POST); ?>

または、読みやすいより洗練された何かが必​​要な場合は、foreachループを使用して$_POSTコレクションをループし、値を出力します。

<table>
<?php 


    foreach ($_POST as $key => $value) {
        echo "<tr>";
        echo "<td>";
        echo $key;
        echo "</td>";
        echo "<td>";
        echo $value;
        echo "</td>";
        echo "</tr>";
    }


?>
</table>
165
Jrod

var_dump を試すことができます:

var_dump($_POST)
16

単に:

<?php
    print_r($_POST);

    //Or:
    foreach ($_POST as $key => $value)
        echo $key.'='.$value.'<br />';
?>
9
Nicolas

次のような意味があります。

<?php
    $output = var_export($_POST, true);
    error_log($output, 0, "/path/to/file.log");
?>
3
Poni

これと同じくらい簡単なものを使用できます

<?php
   print_r($_POST);
?>

これにより、もう少し見やすくなります。

<?php
   echo str_replace('  ', '&nbsp; ', nl2br(print_r($_POST, true)));
?>
3
Vex

間違いなくvar_dumpを使用できますが、フロントエンド開発を行っていると述べました。これを知っていると思いますが、念のため、Firefoxの Firebug またはChromeの/ Internet/Explorerの開発者ツールを使用して、投稿を確認してください。投稿は傍聴者を通過し、そこからも確認できるはずです。

3
user1074115
if (! function_exists('d'))
{
    // Debugger
    function d($var, $exit = 0)
    {
        // Only output on localhost
        if ($_SERVER['HTTP_Host'] != 'localhost')
        {
            return;
        }

        echo "\n[degug_output_BEGIN]<pre>\n";
        echo var_export($var, 1);
        echo "\n</pre>[degug_output_END]\n";

        if ($exit)
            exit;
    }
}

// Call:
d($_POST);

ボーナス: debug_backtrace() をチェックして、デバッグにトレースを追加します。

0
Igor Parra