PHPの基本機能を使用してldap serachを実行します。私は、ldap接続(関数ldap_connect()
)によって返されたリソースに問題があります。これは、正常に動作しているようだが、それはLDAPバインドに来るとき、私はこの警告を取得しています:PHP - ldap_bindエラーは、パラメータ1がリソースであることを期待しています。ブール値が指定されています
警告:はldap_bind():サーバーにバインドすることができません:にLDAP サーバーに接続できません。..
そしてldap_error()
次の警告を返す:
警告:ldap_error()は、パラメータ1は、リソースに与えられたブール ことを期待..
私はvar_dumpを使ってldap_connectによって返された値を見ました。以下は完全なコードです:
<? php
$host = "ldaps://valid.host.name.fr";
$port = 636;
$username = 'uid=HEDE45,ou=Applis,dc=ldapannuaire';
$password = 'mdp1234';
$baseDn = 'dc=ldapannuaire';
$person = 'JACKSON';
$filter="(sn=$person*)";
$connectStr = $host.":".$port;
echo "Connecting ...\n";
$ds = ldap_connect($connectStr);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP referrals'); // We need this for doing an LDAP search.
if ($ds) {
echo "Binding ...\n";
var_dump($ds);
$bind = ldap_bind($ds, $username, $password);
ldap_error($bind);
if ($bind) {
echo "LDAP bind successful...\n";
$search = ldap_search($ds, $baseDn, $filter) or exit("Unable to search LDAP server, response was: " . ldap_error($search));
// Search users
$info = ldap_get_entries($ds, $search);
echo $info["count"]." entries returned\n";
// close connection
ldap_unbind($bind);
} else {
echo "LDAP bind failed...\n";
}
}
ldap_close($ds);
私はコマンドラインを使ってSSH端末で自分のコードを実行します。バインドした後、私はLDAPリソースリンク(resource(8) of type (ldap link)
)を有するのではなく、ブール値を持っている理由私は理解していない
[[email protected]~]$ /software/apache/apa_2.2.24/php-5.3.23/bin/php -c /myproject/apache_2.2.24/php_5.3.23/conf/php.ini /myproject/apache_2.2.24/htdocs/chrons/searchPeople.php
Connecting ...
Binding ...
resource(8) of type (ldap link)
Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in /myproject/apache_2.2.24/htdocs/chrons/searchPeople.php on line 21
Warning: ldap_error() expects parameter 1 to be resource, boolean given in /myproject/apache_2.2.24/htdocs/chrons/searchPeople.php on line 22
LDAP bind failed...
[[email protected] ~]$
:私は、次の結果を得ます。誰かが問題を見つけるのを助けることができますか?
ありがとう。
からhttp://php.net/manual/en/function.ldap-connect.php *構文チェックが失敗した場合は、FALSE *を返します。それはここに当てはまるでしょうか?あなたのldap_connectにこれを加えて、それが動作しているかどうかを知る:またはdie( "$ connectStrに接続できませんでした"); – Nic3500
完全なLDAP URIを使用する代わりに、2つのパラメータ(ホストおよびポート用)を使用して接続するとどうなりますか?例えば'$ ds = ldap_connect( 'valid.host.name.fr'、636);' – EricLavault
ldap_connectの後の応答として「成功」が返ってきます。 警告のおかげで、それはコピー過去のエラー@ RathanNaik – cglvli