PHP 将所有 $_POST[] 变量访问到一个数组中?

2022-08-30 23:24:54

如何捕获变量中的所有字段?放入数组中?$_POST

$email = $_POST;
$emails = array_keys($email);
foreach($emails as $email) {
        echo '$' . nl2br($email);
}
$emailadd = new email_save;
$emailadd->insert_email_into_database("POST VARIABLES GO HERE)

我正在尝试制作电子邮件列表,姓名和电子邮件地址,如何捕获所有可以正常访问的变量,以便我可以将它们添加到我的函数中的参数中?$_POST['email']

我的表单字段有 5 个字段。方法是开机自检。

与其写作,

$email = mysql_real_escape_string($_POST['email']);
$firstname = mysql_real_escape_string($_POST['firstname']);

我正在尝试访问 $_POST[] 数组中的所有值;因此,我可以节省获取已发布变量的时间,并向这些变量添加函数,例如mysql_real_escape_string();

其他安全措施将被弄清楚。

我希望能够将数组的 reffrence 添加到函数中,以便将它们添加到数据库中。


答案 1

如果要从 POSTTed 表单捕获列表,请使用数组语法技巧,而不是枚举的输入字段名称:

<input type="email" name="emails[]">
<input type="email" name="emails[]">
<input type="email" name="emails[]">

这样,您就不需要在PHP中猜测,因为隐式地成为一个数组:emails[]

print_r($_POST["emails"]);
foreach ($_POST["emails"] as $email) {

对于数据库转义,只需使用:

$db_emails = array_map("mysql_real_escape_string", $_POST["emails"]);
// that's an array too

答案 2

$_POST 已经是一个数组。为什么不直接通过呢?