Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как превратить велосипед в фотонный звездолёт (https://javascript.ru/forum/events/64372-kak-prevratit-velosiped-v-fotonnyjj-zvezdoljot.html)

laimas 07.08.2016 13:58

Цитата:

Сообщение от avalan4e
Как Вы оцениваете вариант, если на серверной части создать массив прайслиста и использовать полученные из $_POST идентификаторы для доступа к соответствующему элементу?

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

$pricelist = array();
$handle = @fopen("pricelist.txt", "r");

$price = json_decode(file_get_contents("pricelist.txt"), 1);


И если так мало данных выгружать этот JSON клиенту (идентификатор машины=>[описание машины, цена, и прочее необходимое]), а готовя список в качестве значений опций указывать идентификатор машины. Выбор в списке будет означать - получить из объекта данные этого авто и рассчитать.

Вот только если сервер должен и хранить выбор пользователей (заказы), то писать их в файл, это неудачное решение.

warren buffet 08.08.2016 11:55

Цитата:

Сообщение от laimas
Массив нельзя хранить в файле

А вот у меня есть массив в файле

<?php return array (
  12 => 
  array (
    \'id\' => \'12\',
    \'pid\' => \'0\',
    \'path\' => \'stl\',
    \'title\' => \'Стиль\',
    \'text\' => \'Общая характеристика по стилю\',
    \'show\' => \'1\',
    \'c\' => 
    array (
      13 => 
/* and so */


Что мне за это будет?

---

ТС, ты превратил банальную задачу клиент-серверного интерактивного обмена в какую-то историю О. Отправляешь по вводу - ну отправляй, получай, рендери и все как обычно. Просто у тебя получится вот что: на 1 байт глупых данных из формы, ты будешь поднимать мегабайты хлама на сервере и ради чего?

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

laimas 08.08.2016 12:00

Цитата:

Сообщение от warren buffet
А вот у меня есть массив в файле

Ты совсем больной или что?

warren buffet 08.08.2016 12:12

laimas, мне еще интересно, как клиент может обмануть сервер? Ну, скажем заказать несуществующий товар в несусветном количестве.

laimas 08.08.2016 12:47

А причем тут массив? Нельзя непосредственно тип данных Array, Oject записать в файл, нужна либо сериализация, либо JSON, либо свой велосипед изобретать. И уж коли вместо базы использовать массив, то выгоднее не просто текстовый файл, а необходимая структура данных в нем.

Тех кто слепо веруют, что форма/данные пришедшие извне есть истина, тех не только легко обмануть, но и взломать. А как это делается, читать на haker.ru.

warren buffet 08.08.2016 22:38

Нет, вот пришел id товара которого нет в бд. Как ты его вообще оформишь?


Часовой пояс GMT +3, время: 17:39.