如何捕获$_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();
将会计算出其他安全措施。
我希望能够将数组的修改添加到函数中,以便将它们添加到数据库中。
答案 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>