2016-07-28 3 views
-1

Я Аякса данных, передаваемых в мой PHP файл обработки электронной почты - contact.php - с помощью этой простой пост функции:Создать PHP переменные из почтовых данных

$.post('contact.php', post_data, function(response) { 
     var rout = response.text; 
     // do something w/ response 

post_data простой объект. Данные форматируются в пар ключ/значение, например: {Name: 'me', Email: '[email protected]'}

Ключевые имена не будут известны заранее, так что мне нужно найти способ перебрать post_data & создавать переменные в PHP, предпочтительно ж/с одноименным названием , т.е. $name для имени, $email для электронной почты и т.д.

мне нужен способ, чтобы добавить эти переменные & их значение в $message_body так:

<br />Name: me <br /> 
Email: [email protected] 
+1

Все они будут в массиве '$ _POST', не нужно прокручивать и создавать. Например, '$ _POST ['Email']' будет содержать [email protected] –

+0

Как я уже сказал, я не буду знать имена ключей, поэтому вам нужно найти способ создания переменных, чтобы содержать значения – parti

+4

Возможно [XY Проблема] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – FirstOne

ответ

2

Очевидно, ваше решение итерации $_POST массив с ключом, где key будет имя ввода на вашей форме, и value - значение этого входа.

$message_body = ''; 
foreach ($_POST as $key => $value) { 
    $message_body .= $key . ': ' . $value . '<br />'; 
} 

Update: вы можете делать все, что фильтрация и дезинфицирующее:

foreach ($_POST as $key => $value) { 
    // or check with `in_array()` 
    if ($key != 'excluded_key_1') { 
     $message_body .= sanitizeValue($key) . ': ' . sanitizeValue($value) . '<br />'; 
    } 
} 

где sanitizeValue ваша функция, которая дезинфицирует ваши данные, например.

+0

@u_mulder, поэтому все ключи/значения будут существовать. Чтобы быть в безопасности, я могу добавить заявление о санитации перед добавлением ключа в $ message_body? – parti

+0

@u_mulder Есть пара ключей/флагов, которые я не хочу помещать в $ message_body. Эти специальные ключи будут известны, пример. Filecheck Итак, как я могу запретить Filecheck быть выписанным? – parti

Смежные вопросы