что лучше передать PHP-переменную в вызове AJAX на другую страницу: POST или через сеанс? - PullRequest
0 голосов
/ 08 января 2009

на PHP-сайте, который я создаю, я использую вызов Prototype AJAX для обращения к какой-либо другой php-странице. Эта называемая страница php нуждается в переменной, которая будет существовать как переменная SESSION на первой странице (в том смысле, что она в любом случае используется на этой странице несколько раз).

Это более любопытно, чем что-либо еще, но: какой из двух способов передать нашу переменную предпочтительнее, если есть:

  • на вызываемой странице, запустите сеанс и получите оттуда необходимую переменную, или
  • в вызове AJAX передайте переменную сеанса в качестве параметра POST

Итак, мне интересно, есть ли более высокая «стоимость» передачи переменной POST между страницами, чем получение переменной из сеанса (добавление session_start () и т.д.).

Ответы [ 4 ]

3 голосов
/ 08 января 2009

Если значение не имеет проблем с безопасностью, передайте его методом GET или POST. Только если значение имеет некоторые проблемы с безопасностью, или это может быть серьезной проблемой, если пользователь изменит значение (через прокси или инъекцию), а затем использует SESSION.

0 голосов
/ 11 марта 2009

Я на самом деле ищу ответ на ваш вопрос.

Бу вот что я нашел: Если переменная находится в сеансе на первой странице, это означает, что вы не можете вызвать session_start () на странице «ajax named» Если нет какого-то обходного пути, о котором я не знаю?

0 голосов
/ 08 января 2009

Я бы сказал, используйте сеанс.
У вас уже есть издержки при отправке идентификатора сеанса в заголовке запроса, так что вы также можете использовать его. Сказав, что в любом случае это не слишком большие затраты, но ни один не публикует небольшое количество данных.
Чтобы опубликовать данные, вам также необходимо, чтобы они были доступны на стороне клиента, и если это единственная причина, по которой они есть на стороне клиента, вы оставили себя без необходимости открытым для подмены. Масштабируемость между серверами с балансировкой нагрузки, если она окажется проблемой, придется решать в любом случае, если вы используете сеансы.
Так что, если ваши сессии работают, используйте их.

0 голосов
/ 08 января 2009

Используя метод POST, можно легко кластеризовать серверы, поскольку на стороне сервера меньше запоминается состояние, но за счет отправки потенциально важных данных клиенту.

Используя метод Session, пропускная способность между сервером и клиентом уменьшается, но его сложнее масштабировать между несколькими интерфейсными веб-серверами.

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