我正在发布表单中的 20 个结果,以便在下一页使用,是否有一种快速的发布方式:
$UserID 1 = $_POST['用户 ID1'];
ID每次都会更改而不是列出20多次?我想过一个 foreach 语句,但我不太确定从哪里开始?
您可以使用
extract()
:
extract($_POST);
echo $UserID1; // This now works
这不被认为是一个好的编程实践,但会做你想做的事。
其他答案可以很好地完成这项工作,但是它们引入了安全问题。
代码如下:
foreach($_POST as $key => $value){
$$key = $value; //Assign the value to a variable named after $key
}
允许我将我希望的任何表单字段发布到您的页面并更改任何变量值,例如,假设您在其他地方有这样的代码:
if ($validation) { // Do something }
然后,我可以发布一个名为 validation
的表单字段,其值为 1
并操作您的代码,因为这会将一个名为 $validation
的变量分配给我选择的值。
使用该代码自动从所有$_POST
值中分配变量,与使用该register_globals
相同,由于其明显的安全问题而被弃用。参见:http://www.php.net/manual/en/security.globals.php
如果必须执行此操作,则必须检查发布的值是否是预期值。例如,检查是否存在UserID
。这仅允许创建以 UserID
开头的变量:
foreach($_POST as $key => $value) {
if (substr($key, 0, 6) == 'UserID') {
$$key = $value; //Assign the value to a variable named after $key
}
}
这将检查$_POST['UserID1']
并创建$UserID1
和$_POST['UserID2']
并创建$UserID2
...
foreach($_POST as $key => $value){
$$key = $value; //Assign the value to a variable named after $key
}