PHP-调用$u POST数据的更好方法?
有没有更好的方法使用post数据而不是手动定义变量 我当前的方法PHP-调用$u POST数据的更好方法?,php,html,forms,post,Php,Html,Forms,Post,有没有更好的方法使用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 e
<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);
?>
现在我知道你可以这样做,但这只是一个例子:
是否有更好的方法使用$\u POST['value']
,而不必每次都将POST数据定义为变量
请注意,我已经看过这里了:已经看过了
谢谢 是的,您可以使用
echo "This is my new" . $_POST['name'];
但是,更好的方法是
if(isset($_POST['name'])) // check if this data is exsit
echo "This is my new" . $_POST['name'];
是的,你可以用
echo "This is my new" . $_POST['name'];
但是,更好的方法是
if(isset($_POST['name'])) // check if this data is exsit
echo "This is my new" . $_POST['name'];
当然,您可以直接使用变量,即:
echo "This is my new " . $_POST['name'];
然而,检查空性(或一般验证)是一个好主意。例如,在以下情况下,如果变量为空,我将指定一个默认值:
$name = empty($_POST['name']) ? 'John' : $_POST['name'];
echo "This is my new $name";
当然,您可以直接使用变量,即:
echo "This is my new " . $_POST['name'];
然而,检查空性(或一般验证)是一个好主意。例如,在以下情况下,如果变量为空,我将指定一个默认值:
$name = empty($_POST['name']) ? 'John' : $_POST['name'];
echo "This is my new $name";
$\u POST['value']
已经是一个变量,因此您不必将其存储在变量中。同样,通常的做法是在操作变量之前将其存储在变量中
另外,
$\u POST
是一个数组。这就是为什么您需要指定密钥,在您的情况下,['value']
是您的密钥。现在,如果希望看到它包含的其他值,您还可以回显整个$\u POST
,但是回显在数组上不起作用,因此您需要使用打印($\u POST)
$\u POST['value']
已经是一个变量,因此您不必将其存储在变量中。同样,通常的做法是在操作变量之前将其存储在变量中
另外,
$\u POST
是一个数组。这就是为什么您需要指定密钥,在您的情况下,['value']
是您的密钥。现在,如果希望看到它包含的其他值,您还可以回显整个$\u POST
,但是回显在数组上不起作用,因此您需要使用打印($\u POST)代码>我不确定您需要它的方式,但$\u POST是普通数组可能很重要,因此您可以使用foreach函数
foreach ($_POST as $item) {
print_r($item);
}
我不确定您需要它的方式,但$\u POST是普通数组可能很重要,这样您就可以使用foreach函数了
foreach ($_POST as $item) {
print_r($item);
}
获取post数据的方法有很多,但在某些情况下这取决于需求
- foreach($\发布为$key=>$value)$body.=$key.'->'。
美元价值。”
'
- 如果发布的数据没有键,只有值,请使用原始发布数据:
$postdata=文件\u获取\u内容(“php://input");
- 您可以使用$\u REQUEST和$\u POST来访问POST、Get和Cookie数据等所有内容
- 您也可以简单地使用$input\u data=$\u POST extract()命令
对你有用
获取post数据的方法有很多,但在某些情况下这取决于要求
- foreach($\发布为$key=>$value)$body.=$key.'->'。
美元价值。”
'
- 如果发布的数据没有键,只有值,请使用原始发布数据:
$postdata=文件\u获取\u内容(“php://input");
- 您可以使用$\u REQUEST和$\u POST来访问POST、Get和Cookie数据等所有内容
- 您也可以简单地使用$input\u data=$\u POST extract()命令
对你有用
如果您不想出于安全目的使用extract()
(即使您可以简单地跳过已经存在的变量),那么您可以简单地在数组中循环-检查$\u 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
?>
如果您不想出于安全目的使用extract()
(即使您可以简单地跳过已经存在的变量),那么您可以简单地在数组中循环-检查$\u 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
?>
有一个名为extract()的函数,它可以将$\u POST中的所有命名索引转换为单个变量,并带有可选前缀以避免命名冲突@FreemanLambda该页面有一条警告,禁止使用不受信任的数据…@AaronHatton如果不覆盖变量,则不会发生任何事情。如果你想使用$\u POST[anything]
那么你显然也会冒这个风险?通常不鼓励在你的代码中显式使用超全局。如果出于任何原因,您想将文本输入重命名为lastname
,则需要编辑对$\u POST['name']
的任何引用。如果将其分配给具有适当作用域的变量,则更容易。有一个名为extract()的函数可以将$\u POST中的所有命名索引转换为单个变量,并带有可选前缀以避免命名冲突@FreemanLambda该页面有一条警告,禁止使用不受信任的数据…@AaronHatton如果不覆盖变量,则不会发生任何事情。如果你想使用$\u POST[anything]
那么你显然也会冒这个风险?通常不鼓励在你的代码中显式使用超全局。如果出于任何原因,您想将文本输入重命名为lastname
,则需要编辑对$\u POST['name']
的任何引用。如果将其分配给具有适当范围的变量,则更容易。请改用isset
<如果值为”
或0
,则code>empty
将选择默认值,这很可能不是OP想要的值。请改用isset
<如果值为”
或0
,则code>empty
将选择默认值,这很可能不是OP想要的。这种方式看起来更复杂,但是我想它会通过过滤数组使注入检查更快?@AaronHattonextract
基本上是这样一个函数,它根据键创建变量。唯一不同的是他