Bug #79165 [Fbk->Opn]: trying to access ldap_get_entries array triggers: Trying to access array offset

From: Date: Fri, 24 Jan 2020 13:12:28 +0000
Subject: Bug #79165 [Fbk->Opn]: trying to access ldap_get_entries array triggers: Trying to access array offset
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-225098@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79165&edit=1 ID: 79165 User updated by: mbiebl at messageconcept dot com Reported by: mbiebl at messageconcept dot com Summary: trying to access ldap_get_entries array triggers: Trying to access array offset -Status: Feedback +Status: Open Type: Bug Package: LDAP related PHP Version: 7.4.2 Block user comment: N Private report: N New Comment: $result = ldap_search($con, $dn, $filter, $justthese); $entries = ldap_get_entries($con, $result); foreach ($entries as $e) { if ($e[$this->uidNameAttribute][0] == '') { continue; } $principal = array('uri' => 'principals/' . strtolower($e[$this->uidNameAttribute][0]),); foreach ($this->fieldMap as $key => $value) { if (isset($e[$value['ldapProperty']])) { $principal[$key] = $e[$value['ldapProperty']][0]; } } $principals[] = $principal; } Previous Comments: ------------------------------------------------------------------------ [2020-01-24 13:07:39] cmb@php.net Could you please post the relevant code (and show the reported line number)? ------------------------------------------------------------------------ [2020-01-24 12:28:07] mbiebl at messageconcept dot com Hm, right. I guess I need to explicitly skip the "count" element now which is part of the $result array. foreach (array_slice($entries, 1) as $e) { .. } appears to work. Not sure if this is the cleanest solution though. WDYT? ------------------------------------------------------------------------ [2020-01-24 12:05:41] nikic@php.net foreach does not trigger this notice. Please check the reported line number carefully. It must involve something like "$array[$offset]". ------------------------------------------------------------------------ [2020-01-24 11:55:25] mbiebl at messageconcept dot com Description: ------------ I have the following code $result = ldap_search($con, $dn, $filter, $justthese); $entries = ldap_get_entries($con, $result); and then the following code to iterate through the results foreach ($entries as $e) { ... } This code worked fine with 7.3 and now yields the following error with 7.4: "Trying to access array offset on value of type resource" ldap_get_entries() is supposed to return an array and var_dump($entries) prints array(11) { ["count"]=> int(10) [0]=> .... } So something is at odds here. Why does PHP 7.4 think $entries is not an array? ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79165&edit=1

« previous php.bugs (#225098) next »