トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-PHPのバージョンにおけるLDAPライブラリの挙動の違い

技術的雑談-PHPのバージョンにおけるLDAPライブラリの挙動の違い


 環境

  • PHP 5.2.6(LDAP API 2004)
  • PHP 5.2.11(LDAP API 3001)

 現象

  • 旧版のPHPで動いていたLDAPのコードが動かなくなる

 原因

LDAP APIのバージョンの違いによるもののようです。

見つけたものでは、ldap_search()で対象のエントリーが見つからなかった時の挙動。
(ldap_searchのfilterに対象エントリー数が0となるような検索条件を入れる。)

  • PHP 5.2.6 : {'count' => 0}というarrayが返る
  • PHP 5.2.11 : nullが返る

当然、そのままの戻り値をldap_get_entries()に渡すと例外になります。

 対処


ldap_count_entries()で検索結果の個数を確認して、1以上であったらldap_get_entries()に渡す。

他のPHPのバージョンについては不明ですが、そのPHPでのLDAP APIのバージョンは「php -i」を実行すると「ldap」のセクションに表示されています。

 履歴

2009/12/18 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2DPHP%A4%CE%A5%D0%A1%BC%A5%B8%A5%E7%A5%F3%A4%CB%A4%AA%A4%B1%A4%EBLDAP%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA%A4%CE%B5%F3%C6%B0%A4%CE%B0%E3%A4%A4

技術的雑談へ戻る

最終更新日時:最終更新時間:2009年12月18日 13時21分43秒
トップページに戻る