Php $\u会话不';不要保留ldap$link\u标识符

Php $\u会话不';不要保留ldap$link\u标识符,php,session,ldap,Php,Session,Ldap,在将ldap链接标识符存储到会话变量时,我遇到了会话变量的奇怪行为。为此,我创建了两个php代码段 test1.php: <?php session_start(); $_SESSION['test']=ldap_connect('ldap://asc-OpenLDAP.asc.asc-syscon.de'); echo $_SESSION['test']; ?> <?php session_start(); $_SESSION['test']=ldap_

在将ldap链接标识符存储到会话变量时,我遇到了会话变量的奇怪行为。为此,我创建了两个php代码段

test1.php:

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

输出:资源id#2

到目前为止,一切都很好。 但是,当我试图在第二页上使用$\u会话时,它突然持有一个错误的值

test1.php:

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

test2.php:

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

输出:0

为什么会这样?如何使其保持test1.php中的正确值


期待您的帮助。

您不能将
资源
存储在存储器中,因为会话数据在保存之前已序列化。阅读此

您不能将
资源
存储在存储器中,因为会话数据在保存之前已序列化。阅读此

可能的副本可能的副本首先感谢您的快速帮助。第二:真的!这就是问题所在。但是,有没有一种解决方法可以将“ldap链接”资源转移到另一个页面?不幸的是,没有,因为所有资源都在脚本执行结束时被销毁。首先感谢您的快速帮助。第二:真的!这就是问题所在。但是,有没有一种解决方法可以将“ldap链接”资源转移到另一个页面?不幸的是,没有,因为所有资源都在脚本执行结束时被销毁。