Добрый день,
У меня изящная проблема с моей сессией PHP.
Самое большое из того, что оно работает большую часть времени. Но бывают моменты, это не так.
У меня есть система CMS, которая работает следующим образом:
(первая страница)
https://www.example.com/
(вторая страница) https://www.example.com/stackoverflow-cool-site.html
(третья страница) https://www.example.com/houston-we-have-a-problem/what-problem-do-you-have.html
Теперь я попытался установить переменную SESSION для параметра GET на главной странице, чтобы, если сеанс был установлен, третья страница могла его использовать.
E.g.:
htts: //www.example.com набор = good_weather
Теперь идентификатор сессии установлен для первой страницы: qavuaadh6l0b9qhmrv9unr0chc
Но я заметил, что другие страницы дают:
2gmdggiv9k43khtsikm2eo1rvh
И, конечно, идентификатор сессии может быть чем угодно, и это не такая уж большая проблема. Но дело в том, что это другой ID СЕССИИ.
Теперь этот вопрос встал раньше !
И ответ был: session_set_cookie_params
https://www.php.net/manual/en/function.session-set-cookie-params.php
Однако я уже сделал это. И в правильном порядке.
Но, вероятно, не совсем так, как я должен.
И мне действительно интересно, где моя проблема.
session_set_cookie_params(
self::$limit, /// **** LIFETIME OF THE SESSION COOKIE (in seconds)
self::$path, /// **** THE DOMAIN FOR WHERE THE COOKIE WILL WORK. (single / for all paths on the domain.)
self::$domain, /// **** DEFINE THE DOMAIN NAME
self::$secure, /// **** ONLY BY SECURE CONNECTIONS
self::$httponly /// **** INDICATE THAT THE SESSION COOKIE IS AVAILABLE THROUGH HTTP PROTOCOLS ONLY (not by Javascript)
);
А если вы заполните значения переменных, вы получите:
session_set_cookie_params(
432000,
'/',
'example.com',
true,
true
);
То, что я вижу и понимаю, должно быть правильно. Но это не так.
Я надеюсь, что кто-то мог пролить свет на мою ошибку.
Заранее спасибо.
HTTPS
Я захожу на сайт по протоколу HTTPS, и каждый вызов, который я делал с установленными сценариями, осуществляется только по HTTPS.
Сценарий
У меня все звонки направлены на один и тот же скрипт. Я использую скрипт .htaccess, чтобы все это работало.
DirectoryIndex core/index.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ core/index.php?url=$1 [QSA,L]
</IfModule>