PHP доступ ко всем переменным $ _POST [] в массив? - PullRequest
14 голосов
/ 18 марта 2011

как захватить все поля в $_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 полей. Метод POST.

Вместо записи

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

Я пытаюсь получить доступ ко всем значениям в массиве $ _POST []; Так что я могу сэкономить время, публикуя переменные и добавить функции к этим переменным, как mysql_real_escape_string();

Будут определены другие меры безопасности.

Я хочу иметь возможность добавить ссылку на массив для функции, чтобы я мог добавить их в базу данных.

Ответы [ 3 ]

14 голосов
/ 18 марта 2011

Если вы хотите захватить список из формы 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
7 голосов
/ 18 марта 2011

$ _ POST - это уже массив.Почему бы просто не передать это?

2 голосов
/ 18 марта 2011

Хм ... что-нибудь подобное поможет?

<code><?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 '
'; ?>


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...