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

时间:2011-03-17 22:07:16

标签: php arrays oop post

如何捕获$_POST VARIABLE中的所有字段? 进入阵列?

$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个字段。 方法是POST。

而不是写作,

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

我正在尝试访问$ _POST []数组中的所有值; 所以我可以节省获取发布变量的时间 并为mysql_real_escape_string();

等变量添加函数

将会计算出其他安全措施。

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

3 个答案:

答案 0 :(得分:14)

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

<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

答案 1 :(得分:7)

$ _ POST已经是一个数组。为什么不通过呢?

答案 2 :(得分:2)

嗯......会有这样的帮助吗?

<?php
// blank array to hold emails
$emails = array();

foreach ( $_POST as $key => $value )
{
    if ( preg_match('/email/', $key) )
    {
        $this_email = $value;
        // quick check to see if it is valid
        $this_email = filter_var($this_email, FILTER_VALIDATE_EMAIL);
        // also escape it to prevent SQL injections
        $this_email = $mysqli->real_escape_string($this_email);
        $emails[] = $this_email;
    }
}

// $emails is now a nice, clean array of email addresses
$emailadd->insert_email_into_database($emails);

echo '<pre>';
print_r($emails);
echo '</pre>';
?>

<form method="post" action="index.php">
    <input type="text" name="email1" /><br />
    <input type="text" name="email2" /><br />
    <input type="text" name="email3" /><br />
    <input type="submit" />
</form>