2012-01-05 2 views
0

私は実際にZend Frameworkを使っています。私はldapディレクトリから情報を取得したいと考えています。そのために、私はこのコードを使用します。私は結果の数を制限することで、ページネーションを実現したいと思いますので、zend_ldapを使ってLDAPリクエストを制限する

$options = array('host' => '...', 'port' => '...', ...); 

$ldap = new Zend_Ldap($options); 

$query = '(username=' . $_GET['search'] . ')'; 

$attributes = array('id', 'username', ...); 

$searchResults = $ldap->search($query, $ldap->getBaseDn(), Zend_Ldap::SEARCH_SCOPE_SUB, $attributes); 

$ldap->disconnect(); 

あり、多くの結果かもしれません。ソートパラメータを持つがZend_Ldapのsearch()関数のパラメタを検索したが、間隔は与えなかった。

結果の数を制限するソリューションがありますか(たとえば、制限値0,200のsqlの場合)ですか?

はあなた

答えて

0

クライアントが要求したサイズ制限は、ディレクトリサーバーが返すエントリの数を制限するために使用することができますありがとうございました。ただし、クライアントが要求したサイズ制限は、サーバーが課すサイズ制限を上書きすることはできません。期限も同様です。すべての検索には、ゼロ以外のサイズ制限と制限時間が含まれている必要があります。サイズ制限と時間制限を含めることができないというのは非常に悪いことです。詳細については、"LDAP: Programming Practices"および"LDAP: Search Practices"を参照してください。

「ページング」は、ページングされた簡単な結果コントロール拡張を使用して実行されます。私のブログエントリ:"LDAP: Simple Paged Results"に記載されています。

また、APIがサポートする必要がある場合は、検索結果リスナーを使用して結果が到着したときに処理して、アプリケーションのメモリ要件を削減できます。

0

残念ながら、PHPの現在のリリースでは、箱から出したLDAPページネーション機能をサポートしていません - あなたは、サーバー環境の制御を持っている場合はhttp://sgehrig.wordpress.com/2009/11/06/reading-paged-ldap-results-with-php-is-a-show-stopper/

を参照してください、あなたはPHP 5.3.2でインストールできるパッチが(ありますあなたがこれを行うことを可能にするでしょう:https://bugs.php.net/bug.php?id=42060

....または5.4.0が本番用にリリースされるまで待つことができます。これは今後数週間以内に行われ、この機能が含まれています。

ldap_control_paged_results()とldap_control_paged_results_response()は、パッチを適用する場合に使用する関数です。私は彼らが5.4でldap_control_paged_result()とldap_control_paged_result_response()という名前に変更されたと思います。

幸運を祈る!

関連する問題