Tôi gặp sự cố với kết nối ldap.Lỗi hoạt động LDAP
$hostname="ldap://sub.domain.com";
$ds=ldap_connect($hostname, 389);
ldap_set_option ($ds, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP opt referrals');
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
if ($ds)
{
$dn = "OU=Users,OU=ro,DC=sub,DC=domain,DC=com";
if (!($ldapc=ldap_bind($ds))) {
echo "<p>Error:" . ldap_error($ds) . "</p>";
echo "<p>Error number:" . ldap_errno($ds) . "</p>";
echo "<p>Error:" . ldap_err2str(ldap_errno($ds)) . "</p>";
die;
}
$attributes = array("sn");
$filter = "(sn=*)";
$result = ldap_search($ds, $dn, $filter, $attributes);
echo $result;
$info = ldap_get_entries($ds, $result);
for ($i=0; $i < $info["count"]; $i++) {
echo $info[$i]["ou"][0];
}
} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
ldap_unbind($ds);
Kết nối ẩn danh ldap bất kỳ hoạt động vì tôi thử nghiệm trong trình duyệt AD và mọi thứ đều ổn. Trong mã này nó dừng lại ở
ldap_search($ds, $dn, $filter, $attributes);
tôi nhận được cảnh báo:
Cảnh báo: ldap_search(): Tìm kiếm: lỗi điều hành trong .. \ index.php on line 38
Tôi thực sự không biết nguyên nhân của lỗi này là gì, tôi đánh giá cao sự giúp đỡ của bạn.
Không bạn bị lạc với phạm vi biến? $ dn (cơ sở dn cho tìm kiếm) được định nghĩa một cấp dưới lệnh gọi ldap_search. Thử tham số tìm kiếm lặp lại (var_dump) ldap ngay trước khi gọi tìm kiếm, để đảm bảo mọi thứ đều ổn, hoặc bao gồm kiểm tra isset ($ dn). Hoặc chỉ cần xác định $ dn vô điều kiện. –
Các thông số là ok, tôi đã kiểm tra chúng ngay trước khi cuộc gọi tìm kiếm và điều đó là ok. Một vấn đề mà tôi nghĩ rằng có thể, tôi đang trên mạng nội bộ, tôi không có quyền quản trị viên, vì vậy tôi không thể viết bằng C. Tôi đã sao chép kho lưu trữ xampp, tôi không cài đặt xampp trên máy này. Đầu tiên ngay cả khi tôi kích hoạt phần mở rộng ldap từ php.ini nó không hoạt động vì tôi không có một số tập tin trong C/windows/system. Khi tôi sao chép tất cả mọi thứ hoạt động, tôi nghĩ. Vì vậy, việc cài đặt có thể là một vấn đề? –
Điều gì về việc sử dụng công cụ trình bao để kiểm tra, hoặc Apache DirectoryStudio (giao diện máy khách LDAP)? Bạn không cần phải là quản trị viên địa phương để cài đặt/sử dụng nó, trên Linux hoặc Windows, bất cứ điều gì. Thử kết nối và truy vấn máy chủ ldap với bất kỳ công cụ nào khác ngoài PHP. –