Нужна помощь с PHP работа с массивом?

Помогите разобраться с PHP
отсылаю массив
$.ajax({
            url: 'scripts/order.php',
            data: orderData,
            type: 'POST',
            cache: false,
            dataType: 'json',
            error: _orderError,
            success: function(responce) {
                if (responce.code === 'success') {
                    _orderSuccess(responce);
                } else {
                    _orderError(responce);
                }
            },
            complete: _orderComplete
        });

массив имеет вид
surname=Иванов&name=Иван&email=Иван@mail.ru&phone=1001010&comment=&cart={"1-1":{"goodname":"Tovar","goodprice":"350","goodimg":"image/tovar2.jpg","count":1}}

Перед отправкой письма хочу функцией getData извлечь данные в ассоциативный массив, чтобы с ним было удобнее работать. Но не могу победить в этом вопросе
function getParam($param) {
    return (isset($_POST[$param]));
}
 
function getData() {
    return array(
        'surname' => getParam('surname'),
        'name' => getParam('name'),
        'email' => getParam('email'),
        'phone' => getParam('phone'),
        'coment' => getParam('coment'),
        'cart' => isset($_POST['cart']) ? ($_POST['cart']) : '[]'
    );
}
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
например
function getData() {
    return array(
        'surname' => filter_input(INPUT_POST, 'surname', FILTER_SANITIZE_STRING),
        'name' => filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING),
        'email' => filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL),
        'phone' => filter_input(INPUT_POST, 'phone', FILTER_SANITIZE_STRING),
        'comment' => filter_input(INPUT_POST, 'comment', FILTER_SANITIZE_STRING),
        'cart' => json_decode(filter_input(INPUT_POST, 'comment', FILTER_SANITIZE_STRING) ?: '[]'),
    );
}


Еще лучше отдельно валидацию формы описать, и отдельно сделать получение параметров. Но это в пару строчек не укладывается.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы