безопасный способ передачи больших строковых значений между динамическими страницами - PullRequest
1 голос
/ 09 марта 2011

безопасный способ передачи больших строковых значений между страницами, я использовал PHP на стороне сервера, jquery ajax на стороне клиента

я делаю портал путешествий, где список поездов, которые я должен показать для бронирования, яполучить детали как json из php и отформатировать данные json в html.все в порядке

Проблема в том, что мне нужно передать информацию о выбранных поездах и всю информацию о поездах на следующую страницу, если пользователь хочет изменить выбранный поезд, мне нужно вернуться на предыдущую страницу и показать списокпоездов снова без запроса к серверу

как мне безопасно передать значения на следующую страницу?или как сохранить большие значения на страницах?

Ответы [ 5 ]

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

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

  1. Вы можете сохранить все в памяти, "подделав" разные страницы, используя URL-адреса хеш-бэгов
  2. вы можете отправлять их через обычные параметры получения, но, как вы, вероятно, уже знаете, так как вы задаете этот вопрос, это имеет ограничения
  3. , вы можете использовать html5 localstorage, но так как это не поддерживается ничем, кроме новейших браузеров, этоне подходит для производственного сайта, который должен быть нацелен на широкую аудиторию
  4. вы можете использовать куки, но здесь вы столкнетесь с теми же ограничениями, что и параметры get urls
  5. Вы можете использовать флэш-память, но для этого требуется, чтобы на каждой странице было загружено приложение флэш-памяти, а некоторые пользователи могут не иметь флэш-памяти или могли отключить локальное хранилище флэш-памяти

Лучшее решение, на мой взгляд, # 2: использовать параметры get url исохранить состояние через URL.Помните об ограничениях длины URL-адреса в различных браузерах и «сжимайте» ваши данные, чтобы они минимизировали свою занимаемую площадь.

Обычно это можно сделать с использованием как можно меньшего числа параметров URL-адреса, держа бит, разделенный запятыми.flags.

Так, например, вы можете изменить параметры URL-адреса с

?cars=ford,bmw,vw,mazda на ?c=23

, а затем проверить c поразрядно с предопределенными переменными, такими как:

var BMW = 1, VW = 2, FORD = 4, KIA = 8, MAZDA = 16;

if(c & BMW) { bmw is set}
if(c & VW) { vw is set}
if(c & FORD) { ford is set}
if(c & KIA) { kia is set}
if(c & MAZDA) { mazda is set}

Этот пример не предназначен для того, чтобы быть симпатичным, только для того, чтобы показать концепцию.

Если вы минимизируете свой URL-адрес, вы можете хранить огромное количество данных в URL-адресе, ивы вряд ли столкнетесь с ограничениями размера URL.

1 голос
/ 09 марта 2011

Как сказал Роберт, вы можете использовать PHP-сессию. В противном случае вы можете использовать JSON и передать его через GET, однако у вас могут возникнуть проблемы с длиной параметров GET. Имейте в виду, если вы не собираетесь запрашивать сервер, все данные открыты для манипулирования

0 голосов
/ 09 марта 2011

Безопасный способ bset - это создание данных в базе данных для сессии или добавление данных в cookie (первый способ лучше) и передача только идентификатора с получением на другую страницу

0 голосов
/ 09 марта 2011

Вы можете подумать о сохранении этого в пользовательской сессии. Это сохраняет ваши данные «в безопасности» на стороне сервера, в противном случае вы теряете «контроль» над вашими данными для пользователя.

0 голосов
/ 09 марта 2011

вы можете использовать POST между страницами?

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