PHP session_cache_limiter не работает в Safari? - PullRequest
0 голосов
/ 23 января 2012

Я пытался правильно управлять сессиями через систему онлайн-заказов, которую я пишу с использованием PHP.У меня все работает так, как я планировал, и я позволяю пользователям нажимать кнопку «назад» в середине процесса, не ломая базу данных.

Единственное, что я все еще хочу, - это предотвратить "Кнопка «Назад» используется (или после) последнего экрана «Все выполнено».

На шаге 3 (Подтвердить и продолжить) и шаге 4 (Все выполнено) я включил строки:

session_cache_limiter('nocache');
session_start();

Это прекрасно работает в IE - вы видите страницу, подтверждающую ваш заказ, но вы получаете предупреждение, если пытаетесь нажать «назад».То же самое применимо, если вы переходите с сайта - вы не видите последний шаг.

Похоже, что тот же сайт не работает в Safari (5.1.2).Я могу нажать «назад» и увидеть весь отображаемый контент (он получает его из локального кэша, а не с сервера).

Сайт не принимает повторный ввод, поэтому это не является серьезной проблемой., но это не та функциональность, которую я хотел.Кто-нибудь знает, как заставить это работать в Safari?

1 Ответ

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

Не думаю, что проблема в коде, а в поведении браузера. В Safari, когда вы нажимаете кнопку «Назад», вы просто переходите на ту же страницу, на которой находились ранее, точно так же, как вы открывали новую страницу на другой вкладке, а затем закрывали ее, даже если для кеша установлено значение «no-cache». В Internet Explorer, наоборот, когда вы нажимаете назад, он возвращает вас на предыдущую страницу, указывая ее URL-адрес и загружая ее снова.

Читая здесь и там, кажется, что нет способа избежать этого поведения, кроме небольшого трюка, который должен заставить браузер перезагружать страницу при нажатии назад: Предотвращение кеширования при нажатии кнопки назад в Safari 5 .

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