Невозможно сохранить куки или использовать БД, нужно отображать сообщение только один раз - PullRequest
0 голосов
/ 30 июня 2011

Я разрабатываю для предварительно построенной системы на основе php.

Из-за ограничений, которые я не могу объяснить, я не могу использовать файлы cookie, сеансы или ссылку на БД.

Мне нужно отобразитьсообщение только один раз каждому посетителю.

Любые творческие идеи, которые вы, ребята, можете придумать?

Спасибо,

Ответы [ 4 ]

1 голос
/ 30 июня 2011

Вот несколько идей

  1. Использовать локальное хранилище браузера
  2. Передайте сообщение, используя сообщение или строку запроса. Не безопасный вариант
  3. Используйте флэш-магазин. То же, что № 1, но вспышка не нужна!
  4. Используйте файловый диск, но тогда вам нужно помнить, кто владеет файлом, так как несколько человек будут на одном сервере. Без использования куки, я не уверен, как это сделать.

Мне лично нравится использовать localStorage. Первая страница создаст некоторый javascript, который хранит сообщение в хранилище браузера, а затем второй запрос извлечет это сообщение и отобразит его.

0 голосов
/ 30 июня 2011

Вы можете заставить PHP предварительно ожидать некоторый ваш собственный код PHP, включая вызов session_start (), с опцией auto_prepend_file .ini.

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

После этого у вас есть сеанс (или даже просто cookie), в котором вы можете сохранить свои флаги, чтобы скрыть это сообщение при последующих посещениях.

0 голосов
/ 30 июня 2011

Как насчет использования IP Tracking и плоского файла или CSV.Нечто похожее на это будет отображаться только один раз для IP.

0 голосов
/ 30 июня 2011

Хотя ваши ограничения несколько любопытны, я полагаю, вы можете добавить значение в ваш $_GET.

Если посетитель посещает www.yoursite.com/, он увидит ваше сообщение, все ссылки, отображаемые на этой странице, содержат $_GET var 'display' или, как вы хотите, назвать его. поэтому ссылки будут как www.yoursite.com/page.html?displayed=1

Тогда вы проверяете

if (isset($_GET["displayed"]))
// don't display message
else 
// display message

Не очень «хороший» подход, но он бы сработал.

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