2017-02-22 85 views
1

Я столкнулся с странным поведением переменной сеанса при сохранении идентификатора ссылки ldap. Для этого я создал два php-фрагмента.

test1.php:

<?php 
    session_start(); 
    $_SESSION['test']=ldap_connect('ldap://asc-OpenLDAP.asc.asc-syscon.de'); 
    echo $_SESSION['test']; 
?> 

Выход: идентификатор ресурса # 2

До сих пор все хорошо и прекрасно. Но тогда, когда я пытаюсь использовать $ _SESSION на второй странице, он неожиданно имеет неправильное значение.

test1.php:

<?php 
    session_start(); 
    $_SESSION['test']=ldap_connect('ldap://asc-OpenLDAP.asc.asc-syscon.de'); 
    header('Location:test2.php'); 
?> 

test2.php:

<?php 
    session_start(); 
    echo $_SESSION['test']; 
?> 

Выход:

Почему это так? Как я могу заставить его сохранить правильное значение из test1.php?

Ждем вас к помощи.

+0

Возможный дубликат [сеанса PHP после перенаправления] (http://stackoverflow.com/questions/17242346/php-session-lost-after-redirect) –

ответ

0

Вы не можете сохранить Resource на хранение, поскольку данные сеанса сериализуются перед сохранением. Прочитайте это http://php.net/manual/en/function.serialize.php

+0

Прежде всего, спасибо за быструю помощь. Второе: Действительно! Это проблема. Но есть ли способ обхода «ссылки ldap» Ressource на другую страницу? – G4schberle

+0

К сожалению нет, поскольку все ресурсы уничтожаются при завершении выполнения скрипта. –

+0

Это облом. В любом случае спасибо за помощь! – G4schberle