2017-02-22 41 views
1

當將ldap鏈接標識符存儲到會話變量時,我遇到了一個奇怪的會話變量行爲。爲此,我創建了兩個PHP片段。

test1.php:

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

輸出:資源ID#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鏈接'資源轉移到另一頁? – G4schberle

+0

不幸的是,因爲所有資源都在腳本執行結束時被銷燬。 –

+0

這是一個無賴。無論如何感謝您的幫助! – G4schberle