Можно ли добавить session_start (); в начало всего моего сайта?

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

   <?php
session_cache_limiter('private_no_expire'); // must go before session start
session_start();

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

У меня есть файл с именем «all.php», который включает в себя все мои классы / объекты и общие ресурсы в начале каждой страницы в моей системе. Я подумал, что удаление приведенного выше кода из всех отдельных файлов электронной коммерции и добавление в начало файла «all.php» было бы хорошей идеей, поскольку он общесистемный и первое, что загружается на страницу.

С тех пор, как моя область входа клиента столкнулась с проблемами. Он продолжает отбрасывать пользователей обратно на страницу входа после того, как они просмотрели несколько ссылок. Кажется, когда вы нажимаете на URL, который уже был на нем, он вам не нравится и просто возвращает вас к началу. Если вы добавите &1 = 1 на URL-адрес, на который вы заходили ранее, система обманом заставляет вас посещать страницу, потому что это новый уникальный URL-адрес. Так что кеш определённо портится.

На самом деле я пока не использую сеансы в этом разделе веб-сайта, поэтому вы не выходите из системы … просто отправляю вас на ту страницу, с которой вы начали,

Может ли кто-нибудь пролить свет на то, что здесь может пойти не так?

Может быть, я использую session_cache_limiter (‘private_no_expire’);

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

http://php.net/manual/en/function.session-cache-limiter.php

ОБНОВИТЬ:

Комментирование первой строки помогло, и проблема прекратилась:

//session_cache_limiter('private_no_expire'); // must go before session start

Это временное исправление, так как это означает, что кнопка «Назад» вызывает предупреждения о повторной отправке данных. Это просто означает, что мне нужно реализовать это должным образом, но я все еще хочу понять, почему эта линия делает это:

http://en.wikipedia.org/wiki/Post/Redirect/Get

3

Решение

Это похоже на то, как мы создаем панель входа в PHP.
Как только пользователь вошел в систему, вам нужно запустить сеанс с помощью session_start (), а когда пользователь нажмет кнопку «Выйти», остановите сеанс с помощью ssession_unset (). Это решит ваши проблемы.
Попробуйте и дайте мне знать, если это работает.

Продолжайте кодировать ..

0

Другие решения

Самый быстрый и чистый способ обойти это — сделать это после завершения обработки данных формы, вместо отображения информации на странице, которая выполняет обработку.

Header('Location: http://www.domain.com/page.php');

Например, если вы добавляете товар в корзину, перенаправьте пользователя либо на страницу его корзины, либо снова на страницу товара.

Since doing this, my customer login area has encountered problems. It keeps throwing users back to the login page after they've navigated a few links. It seems when you hit a URL that you've already been on it doesn't like it and just sends you back to the start. If you add &1=1 onto a url that you've been onto before, it tricks the system into letting you visit the page because its a new unique url. So the cache is definitely messing up.

session_cache_limiter('private_no_expire'), Вам это не нужно для того, что вы делаете.

1

По вопросам рекламы [email protected]