PHP - 调用$ _POST数据的更好方法?

时间:2013-10-03 09:50:52

标签: php html forms post

有没有更好的方法来使用后期数据,而不是手动定义变量?

我当前的方法

<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已经

谢谢!

6 个答案:

答案 0 :(得分: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 ?> 存在,如果存在,则创建密钥的变量:

{{1}}

答案 1 :(得分: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'];

答案 2 :(得分:0)

当然,您可以直接使用变量,即:

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

然而,检查空虚(或一般验证)是个好主意。例如,在下面的情况中,如果变量为空,我指定一个默认值:

$name = empty($_POST['name']) ? 'John' : $_POST['name'];
echo "This is my new $name"; 

答案 3 :(得分:0)

$_POST['value']已经是一个变量,因此不必将它存储在变量中。然后,通常的做法是在操作变量之前将其存储在变量中。

此外,$_POST是一个数组。这就是您需要指定密钥的原因,在您的情况下['value']是您的关键。现在你也可以回显整个$_POST,如果你想看到它所拥有的其他值,但是echo对数组不起作用,所以你需要使用print_r($_POST);

答案 4 :(得分:0)

我不确定你需要它的方式,但是$ _POST是正常数组可能很重要,所以你可以使用foreach函数。

foreach ($_POST as $item) {
  print_r($item);
}

答案 5 :(得分:0)

有很多方法可以获得发布数据,但在某些情况下这取决于需求。

  • foreach($ _POST as $ key =&gt; $ value)$ body。= $ key。 ' - &gt; '。 $ value。 '
    ';

  • 如果发布的数据没有密钥,只有值,请使用原始发布数据:

    $ postdata = file_get_contents(“php:// input”);

  • 您可以使用$ _REQUEST以及$ _POST来覆盖Post,Get和Cookie数据等所有内容。

  • 你也可以使用简单的$ input_data = $ _POST extract() 对你有用。