有没有更好的方法来使用后期数据,而不是手动定义变量?
我当前的方法
<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已经
谢谢!
答案 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() 对你有用。