0

変数を手動で定義するのではなく、投稿データを使用するより良い方法はありますか?

私の現在の方法

<form method="POST" action="form.php">

    <input type="text" name="name" id="name" />

    <input type="submit" value="Submit">

</form>

<?php

    $name = $_POST['name'];

    function echoname ($name) {

        echo $name;

    };

    echo "This is my new" . echoname ($name);

?>

今、私はあなたが私の例のためにこのように行くことができることを知っていますが、それは単なる例です:

<?php

    $name = $_POST['name']

        echo "This is my new" . $name;

?>

$_POST['value']投稿データを毎回変数として定義せずに使用するより良い方法はありますか?

注として、私はここを見てきました: PHP Manual $_POST already

ありがとう!

4

6 に答える 6

3

セキュリティ目的で使用したくない場合はextract()(既に存在する変数を単にスキップすることもできますが)、配列を単純にループすることができます。$_POST値が存在するかどうかを確認し、存在する場合はキーの変数を作成します。 :

<?php
    $postVariablesToExtract = array("name", "password", "email");

    foreach ($postVariablesToExtract as $postVariableToExtract) {
        if (isset($_POST[$postVariableToExtract])) {
            $$postVariableToExtract = $_POST[$postVariableToExtract];
        } else {
            $$postVariableToExtract = null;
        }
    }

    var_dump($name); //null - as we don't have any POST values
    var_dump($password); //null - as we don't have any POST values
    var_dump($email); //null - as we don't have any POST values
?>
于 2013-10-03T10:00:59.123 に答える
0

$_POST['value']はすでに変数であるため、変数に格納する必要はありません。繰り返しますが、操作する前に変数に格納するのが一般的な方法です。

また、$_POST配列です。これが、キーを指定する必要がある理由です。あなたの場合['value']はあなたのキーです。保持している他の値を確認したい場合は、全体をエコーアウトすることもできます$_POSTが、エコーは配列では機能しないため、使用する必要がありますprint_r($_POST);

于 2013-10-03T09:55:10.463 に答える
0

どのように必要なのかはわかりませんが、 $_POST が通常の配列であるため、 foreach 関数を使用できることが重要かもしれません。

foreach ($_POST as $item) {
  print_r($item);
}
于 2013-10-03T09:56:34.473 に答える
0

投稿データを取得する方法は多数ありますが、場合によっては要件によって異なります。

  • foreach ($_POST as $key => $value) $body .= $key . ' -> ' . $値。'
    ';

  • 投稿されたデータにキーがなく、値のみがある場合は、Raw Post Data を使用します。

    $postdata = file_get_contents("php://input");

  • $_REQUEST と $_POST を使用して、Post、Get、Cookie データなどすべてにアクセスできます。

  • 単純に $input_data = $_POST extract() を使用することもできます。

于 2013-10-03T10:00:58.453 に答える
0

はい、使用できます

echo "This is my new" . $_POST['name'];

しかし、より良い方法は

if(isset($_POST['name'])) // check if this data is exsit
    echo "This is my new" . $_POST['name'];
于 2013-10-03T09:53:59.887 に答える