Сеанс PHP субдомена исчезает - PullRequest
0 голосов
/ 29 ноября 2010

index.php

session_start();

if(!isset($_GET['n'])) {
  $_SESSION['foo'] = "bar";
  header("Location: /index.php?n=D");
}

echo "FOO: ".$_SESSION['foo'];

Эта страница index.php используется в поддомене. Субдомен - это папка в корневом домене, т.е.

 - WWW
    - SUB DOMAIN
      - index.php

Переменная сеанса foo устанавливается при вызове страницы, затем проверяется после заголовка перенаправления - и она исчезла.

Я пробовал:

  • ini_set('session.cookie_domain','.example.com');
  • Различные комбинации session_set_cookie_params()
  • Расположение: http://subdomain.example.com
  • вырвать мои волосы

но, похоже, ничего не работает. Похоже, очень простая проблема - может ли кто-нибудь помочь мне найти мой потерянный файл cookie / сеанс / переменную?

EDIT

var_dump(session_get_cookie_params()) выход

array(5) { ["lifetime"]=> int(0) ["path"]=> string(11) "/" ["domain"]=>
 string(23) ".example.com" ["secure"]=> bool(false) ["httponly"]=> bool(false) } 

Мой URL содержит тире - (my-example.com). Может ли это быть проблемой?

Также попытался установить session_name() перед параметрами. Все еще не работает.

1 Ответ

2 голосов
/ 29 ноября 2010

После пяти часов попыток я наконец-то связался со своим хостинг-провайдером, и они посмотрели.

Приговор?session.save_path в php.ini не было установлено.Приведенный выше сценарий теперь работает правильно.

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

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