2017-02-22 2 views
1

Ich habe ein seltsames Verhalten der Sitzungsvariablen beim Speichern der LDAP-Link-ID zu ihm festgestellt. Dafür habe ich zwei PHP-Snippets erstellt.

test1.php:

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

Ausgang: Resource id # 2

Bisher ist alles schön und gut. Aber dann, wenn ich versuche, $ _SESSION auf der zweiten Seite zu verwenden, hält es plötzlich einen falschen Wert.

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']; 
?> 

Ausgang:

Warum ist das so? Wie kann ich sicherstellen, dass der korrekte Wert von test1.php beibehalten wird?

Wir freuen uns auf Ihre Hilfe.

+0

Mögliche Duplikate von [PHP Sitzung verloren nach Umleitung] (http://StackOverflow.com/Questions/17242346/php-Session-Lost-after-Redirect) –

Antwort

0

Sie können Resource nicht im Speicher speichern, da Sitzungsdaten vor dem Speichern serialisiert werden. http://php.net/manual/en/function.serialize.php

+0

Zunächst einmal vielen Dank für die schnelle Hilfe. Zweitens: In der Tat! Das ist das Problem. Gibt es jedoch einen Workaround, um die 'ldap link' Ressource auf eine andere Seite zu übertragen? – G4schberle

+0

Leider nein, weil alle Ressourcen bei der Skriptausführung zerstört werden. –

+0

Das ist ein Mist. Wie auch immer, danke für Ihre Hilfe! – G4schberle