2015-11-25 4 views
1

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

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

Страница 2.

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

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

Я запускаю PHP в IIS 8.5 на сервере 2012 R2.

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

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

+0

, страница которого называется сначала ?? 1 или 2 ?? –

+0

Сначала я вызываю страницу 2. Действительно ли это имеет значение, поскольку первая страница не сбрасывает эту переменную. – Shadymilkman01

ответ

0

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

0

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

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

Благодарим вас за ответ. Сначала я вызываю вторую страницу, затем первую страницу. Переменная не переносится. – Shadymilkman01

+0

не уверен, почему не работает для вас, но выше метод отлично работает для меня, вы видите какую-либо ошибку или уведомление или что-то еще? – rocky

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^