Показать сообщение отдельно
  #27 (permalink)  
Старый 29.10.2017, 21:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
не понимаю. чтобы связать значения value с чем то вразумительным
А на каком основании вы пытаетесь втюхать серверу:

"Стоимость пленки: " + sp

а к примеру не

"Крепление: " + sp?

Если на клиенте вы знаете чему что соответствует, то почему сервер не может знать? Если на клиенте можно что-то посчитать, основываясь на выборе пользователя, то почему посчитать не может сервер?

Одна из святых обязанностей сервера, это проверка данных полученных извне. Если вместо данных сервер будет получать хлам типа:

"Стоимость пленки: " + sp +
"\nСтоимость проектора: " + pp +
"\nСтоимость лазера: " + lp +
.....

то для проверки таких данных придется попотеть. Такое можно формировать на клиенте исключительно для него же, если, к примеру, результат этого расчета будет предложено сохранить на клиенте средствами браузера минуя сервер. Вот тогда пожалуйста, что угодно пусть клиент творит, а далее его дело - хоть в рамочку и на стенку, хоть в ведро для мусора.

Но вы то получаете эти данные на сервере, отправляете их почтой, что уже накладывает ответственность на вас как разработчика. Учтите, класс phpmailer не для устранения дыр, которые вы сознательно определяете своим подходом, этот класс всего лишь для грамотного оформления почтовых сообщений. А как, кому и что он будет отправлять определяете вы как разработчик.

Сервер и только он является источником и владельцем данных. Им же определяются и условия, и эти условия могут только портироваться на клиент для использования их в клиентских сценариях, в тех же калькуляторах. Но портирование клиенту не означает, что сервер о них забывает и вообще далее все в руках клиента и сервер полностью ему доверяет.

Я могу описать нечто из данных без базы таким образом:

$data = [
    'figure' => [
        'head' => [
            'label' => 'Фигура',
            'set'   => 'Выберите фигуру',
            'tpl'   => 'Выбрана фигура'
        ],
        'opt' => [
            1 => 'квадрат',
                 'круг',
                 'ромб'
        ] 
    ],
    'size' => [
        'head' => [
            'label' => 'Размер',
            'set'   => 'Выберите размер',
            'tpl'   => 'Выбран размер фигуры'
        ],
        'opt' => [
            1 => 'большой',
                 'средний',
                 'малый'
        ],
    ],
    'color' => [
        'head' => [
            'label' => 'Цвет',
            'set'   => 'Выберите цвет',
            'tpl'   => 'Цвет фигуры выбран'
        ],
        'opt' => [
            1 => 'белый',
                 'черный',
                 'синий'
        ]
    ],
];


И по этим данным буду строить форму:

<form>
<?php
foreach($data as $key=>$val) :
?>
    <div><label><?=$val['head']['label']?>:</label> <select required name="<?=$key?>"><option value=""><?=$val['head']['set']?></option>
<?php
    foreach($val['opt'] as $k=>$v):
?>
        <option value="<?=$k?>"><?=$v?></option>
<?php
    endforeach;
?>
    </select></div>
<?php         
endforeach;
?>
<button>Отправить</button>
</form>


Сервер получая форму, зная, что она должна прислать количество полей равных количеству элементов массива $data и все ключи массива данных этой формы должны соответствовать ключам массива $data, проверяет это условие. Если пользователь выберет в трех списках значение 2, может ли сервер знать что выбрано, и сформировать согласно принятому список, который основан на описании в массиве $data:

Выбрана фигура: круг
Выбран размер фигуры: средний
Цвет фигуры выбран: черный

???

Наверное же это не будет для него проблемой. Вы думаете для него будет проблемой что-то и посчитать, если он знает, что цена за единица товара Т, идентификатор которого равен 15, равна 200 руб., а формой прислано под ключом 'goods' определяющем выбор товара, во вложении под ключом 15, значение равное 3, которое означает количество выбранного?

Прежде чем писать приложения, а тем более многопользовательские и открытые "всем ветрам", нужно изучить способы хранения данных на сервере - почему так, а не иначе, с чем это связано и т.д. Не зная этого, вы ставите все с ног на голову.

Последний раз редактировалось laimas, 29.10.2017 в 21:29.
Ответить с цитированием