Переменные сессий PHP & amp; Аутентификация

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

<?php
session_start();
echo session_id()."<br>";
echo $_SESSION['test']."<br>";

Страница вторая.

<?php
session_start();
echo session_id()."<br>";
$_SESSION['test'] = 'test';
echo $_SESSION['test'];

Вторая страница находится в другом каталоге (в том же домене) и включает проверку подлинности Windows. Первая страница использует анонимную аутентификацию. Из выходных данных я вижу, что идентификатор сессии такой же, но на первой странице не отображается тестовая переменная, заданная на второй странице.

Я использую PHP в IIS 8.5 на сервере 2012 R2.

Любая помощь приветствуется.

Чтобы уточнить, я сначала вызываю вторую страницу, а на первой странице переменная не отображается.

1

Решение

Вам необходимо сначала инициализировать переменную значением, прежде чем использовать его.

First run page2.php so, that value of $_SESSION['test'] is set to test
using $_SESSION['test'] = 'test';
Now, run page1.php there you can see the value of $_SESSION['test']
using echo $_SESSION['test']."<br>";

Вы также можете выполнить эти шаги, чтобы использовать сессию простым способом, чтобы вам не приходилось делать session_start () снова и снова

1. config.php having session_start();
2. page1 having include_once('config.php');
echo session_id()."<br>";
echo $_SESSION['test']."<br>";
3. page2.php having include_once('config.php');
echo session_id()."<br>";
$_SESSION['test'] = 'test';
echo $_SESSION['test'];
0

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

Попробуйте закрыть сеанс на первой странице, возможно, ваш файл сеанса все еще открыт при вызове второй страницы, поэтому вы не видите данные. Попробуйте добавить session_write_close () к первой вызванной странице.

http://php.net/manual/en/function.session-write-close.php

0

Проблема была с разрешениями на пути сохранения сеанса. Я изменил путь к тому, где обе директории могли написать, и это работает.

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