ошибка кеша php - PullRequest
       3

ошибка кеша php

0 голосов
/ 05 января 2012

У меня есть одна страница в моей панели управления, которой нужен секретный код для доступ.

Моя последовательность для этого:

  1. перейти на «страницу запроса секретного кода» с параметром, к какой странице я хочу получить доступ.
  2. проверьте секретный код, если он правильный, затем заполните переменную сеанса "хэшированным именем страницы"
  3. перенаправить на страницу, к которой я хочу получить доступ.
  4. эта страница проверяет "хешированную сессию", совпадают или нет с этим "именем страницы"
  5. если совпадают, очистить сеанс и показать всю страницу, если несоответствие, затем перенаправить на начальную страницу.

Проблема в том, что на шаге 4 страница иногда читается в конце сеанса Обновить. иногда это не показывает никакой ценности, но много раз это показывает правильное значение, и если я обновлю страницу, сеанс по-прежнему исправить хешированные данные (на шаге 5, если совпадение, я уже очищаю сеанс переменная), как?

я пытаюсь изменить переменную сеанса с записью данных с помощью mysql, но я получил тот же результат. phpmyadmin показывает уже установленную запись, но на странице нет набора данных. а в противном случае после удаления записи страница по-прежнему показывает предыдущее значение записи.

это значит проблема с кешем? я также сделал заголовок без кеша такие как:

    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');

но все тот же результат, который я получил. Любое предложение, ребята?

обновления: если я продолжаю обновлять страницу, возможно, после обновления 3 или 5 она показывает правильное значение. как сделать это в реальном времени? Итак, если сеанс установлен, страница может непосредственно проверить установленное значение, а если сеанс очищен, значит, страница запросит секретный код .?

1 Ответ

1 голос
/ 05 января 2012

выгрузить сеанс на шаге 4: print_r ($ _ SESSION), чтобы увидеть, установлен он или нет. Если нет, вам нужно установить его на шаге 2 до того, как вы сделаете перенаправление.

Также не забудьте вызывать session_start () для каждого файла.

...