tacki / f3-ldap

F3 LDAP plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LDAP nach PHP Upgrade auf 8.1.2 defekt

Marook332 opened this issue · comments

Hallo,

kann es sein, dass das LDAP Plugin nicht mit PHP 8.1.2 klarkommt ? Vorher auf PHP 7.4.3 lief alles problemlos - man konnte sich per LDAP anmelden, Attribute ändern... alles war perfekt! Nun habe ich PHP aktualisiert, das F3 Framework ebenfalls auf 3.8.1 und nun gibt die Funktion findone() immer nur noch FALSE zurück.
Hier ein kleiner Codeschnipsel:
` $ldap = new LDAP();

    $username = $app->get('POST.username');
    $password = $app->get('POST.password');

    $mapper = new LDAP\Mapper($ldap);
    $user = ($mapper->findone("(mail=$username)")`

Hier kommt nur noch FALSE zurück, obwohl sich am restlichen Code (bis auf das F3) nichts verändert hat.
Wäre sehr cool, wenn wir das irgendwie wieder zum Laufen bekommen :)

Greetz

Marook

Auch wenn es etwas gedauert hat - das Problem sollte nun behoben sein.

Ursache:
Bis PHP 8.0 wurde z.B. bei ldap_search eine resource zurückgegeben - ab 8.1 ist es die Klasse LDAP/Result. In LDAP.php wurde aber noch mit is_resource() geprüft ob ein gültiges Ergebnis vorliegt. Ich habe jetzt diesen Check mit instanceof erweitert um zu de PHP-Versionen 7.x und 8.x kompatibel zu sein. Ich hab die Lösung nicht sehr intensiv getestet, hoffe aber dass sie bei dir jetzt wieder funktioniert.

Danke fürs melden!