2013-04-28 2 views
3

Как известно, переменная сеанса $ _SESSION отличается для каждого пользователя. Я хочу знать область действия переменной Server, как $ _SERVER. Я использую http-аутентификацию в моем RestFul API. Если я установил $_SERVER['PHP_AUTH_USER'], будет ли он установлен для 1 пользователя или всего пользователя, который будет обращаться к моей странице сервера?область переменных сервера в php

Благодаря

ответ

0

Это будет установлен только для текущего пользователя, но почему бы вам не использовать $ GLOBALS вместо $ _SERVER?

$ GLOBALS - Ссылки все переменные, доступные в глобальном масштабе

Этот суперглобальный массив будет более подходящим, чем $ _SERVER для такой задачи. Ум, что $ GLOBALS или $ _SERVER не сохраняют свои данные после завершения запроса. Поэтому, если вы хотите сохранить некоторые данные из одного запроса другому, вы должны использовать $ _SESSION.

+0

Если это для одного пользователя, то какая разница между $ _SESSION и $ _SERVER scope? – 2013-04-28 20:04:43

+0

$ _SERVER перезаписывает свои данные после каждого запроса, а $ _SESSION может потерять свои данные только после определенного времени (указанного в php.ini). $ _SERVER содержит связанные с сервером данные (например, путь к исполняемому сценарию, заполненный apache или другим сервером), а $ _SESSION должен содержать данные, относящиеся к пользователю (например, часовой пояс, заполненный вашим кодом). Проверьте эти статьи [link] (http://www.php.net/manual/en/language.variables.superglobals.php) – vadimrostok

+0

Я заполнил $ _SERVER ['PHP_AUTH_USER']) varaible, теперь, если я обновляю страницу, это значения остаются там .. никогда не удаляются – 2013-04-28 20:18:10

0

php.net:

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

Пользователю, обращающемуся к вашему веб-сайту, присваивается уникальный идентификатор, так называемый идентификатор сеанса . Это либо сохраняется в файле cookie на стороне пользователя , либо распространяется по URL-адресу.

, что означает, отличается от пользователя, так как идентификатор сеанса отличается для каждого пользователя и сессии позволяют пользователю доступ к владельцу ассоциативного массива

значение, которое устанавливается на $ _SERVER на RAM и не хранить в file или база данных и его удалить с Оперативная память после запроса отделка. для такой работы, как сохранение переменной во время работы пользователя, вы можете использовать $ _SESSION, но если вы хотите сохранить переменную для всех пользователей, вы можете использовать базу данных

+0

, что означает, что $ _SERVER предназначен для непостоянного запроса .. Значение $ _SERVER может меняться при каждом запросе. – 2013-04-28 20:12:31

+0

yes $ _SERVER для непостоянного запроса и значение $ _SERVER установлено для каждого запроса –

+0

Я заполнил $ _SERVER [ 'PHP_AUTH_USER']) varaible, теперь, если я обновляю страницу, значения остаются там .. никогда не удаляются – 2013-04-28 20:25:27

Смежные вопросы