$fields = array("displayname", "objectcategory", "department", "telephonenumber", "homephone", "mobile", "mail", "physicaldeliveryofficename", "wwwhomepage");
$ldap_port = "389";
$filter = "displayname=*".iconv ('CP1251','UTF-8');
$ldap_user ="test";
$ldap_pass = "*****";
$connect = ldap_connect("0.0.0.0");
function ldap($connect, $user, $password) {
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
return ldap_bind($connect, $user, $password);
}
$bind = ldap($connect, $ldap_user, $ldap_pass);
$read = ldap_search($connect, "ou=Users,dc=ufps,dc=omskpost,dc=local", $filter, $fields ) or die ("Не тот фильтр");
if ( $info = ldap_get_entries($connect, $read) )
{
for( $ligne = 0; $ligne<$info["count"]; $ligne++)//выводит данные пока $lnge не будет = количеству строк массива
{
$displayname = @iconv( 'UTF-8', 'utf-8', $info[$ligne][$fields[0]][0] ); //меняем кодировку и записываем в ячейку массива
$title = @iconv( 'UTF-8', 'utf-8', $info[$ligne][$fields[1]][0] );
$department = @iconv( 'UTF-8', 'utf-8', $info[$ligne][$fields[2]][0] );
$phone = @$info[$ligne][$fields[3]][0]; //записываем в ячейку массива
$hphone = @$info[$ligne][$fields[4]][0];
$mobile = @iconv('UTF-8', 'utf-8', $info[$ligne][$fields[5]][0]);
$mail = @$info[$ligne][$fields[6]][0];
$kab = @$info[$ligne][$fields[7]][0];
$ip = @iconv('UTF-8', 'utf-8', $info[$ligne][$fields[8]][0]);
if ($displayname == "") {$displayname = "none";} //если значение пустое пишем none
if ($title == "") {$title = "none";}
if ($department == "") {$department = "none";}
if ($phone == "") {$phone = "none";}
if ($hphone == "") {$hphone = "none";}
if ($mobile == "") {$mobile = "none";}
if ($mail == "") {$mail = "none";}
if ($kab == "") {$kab = "none";}
if ($ip == "") {$ip = "none";}
//записываем таблицу в ячейку результ
$result .= '<tr><td bgcolor=#F4F9F3><h6>'.$displayname.'</h6></td>'
.'<td bgcolor=#F4F9F3>'.$title.'</td>'
.'<td bgcolor=#F4F9F3><p> '.$department.'</p></td>'
.'<td bgcolor=#F4F9F3><p> '.$phone.'</p></td>'
.'<td bgcolor=#F4F9F3><p> '.$hphone.'</p></td>'
.'<td bgcolor=#F4F9F3><p> '.$mobile.'</p></td>'
.'<td bgcolor=#F4F9F3><p><a href="mailto:'.$mail.'">'.$mail.'</a></p></td>'
.'<td bgcolor=#F4F9F3><p> '.$kab.'</p></td>'
.'<td bgcolor=#F4F9F3><p> '.$ip.'</p></td></tr>';
}
} else{echo 'no';}
Имя входа пользователя: test @ufps.omskpos.local
Имя входа пользователя (пред-Windows 2000) UFPS\ test
пишет что не получил данных, ругается на $read = ldap_search($connect, "ou=Users,dc=ufps,dc=omskpost,dc=local", $filter, $fields ) or die ("Не тот фильтр"); Хотя с другим сервером работает, расскажите что не так, где посмотреть нужные настройки...
Спустя 6 минут, 17 секунд (1.03.2012 - 07:15) Visman написал(а):
$displayname = @iconv( 'UTF-8', 'utf-8', $info[$ligne][$fields[0]][0] ); //меняем кодировку и записываем в ячейку массива
Это меня убило :(
Соседняя тема схожая тематикой http://phpforum.ru/index.php?showtopic=58251&hl=
Спустя 5 минут, 13 секунд (1.03.2012 - 07:20) Undertaker написал(а):
Visman
Меня это уже который день без ножа режет, как ни крути а данная строка необходима
Меня это уже который день без ножа режет, как ни крути а данная строка необходима
Спустя 3 минуты, 52 секунды (1.03.2012 - 07:24) Undertaker написал(а):
Visman
Цитата |
Соседняя тема схожая тематикой http://phpforum.ru/index.php?showtopic=58251&hl= |
Она совсем не схожа, совсем другое направление(((
Спустя 11 минут, 12 секунд (1.03.2012 - 07:35) Visman написал(а):
Посмотри статью PHP: почтовая книга на лету из LDAP или Active Directory
http://habrahabr.ru/blogs/sysadm/85428/
Может есть там чего толкового.
http://habrahabr.ru/blogs/sysadm/85428/
Может есть там чего толкового.
Спустя 7 минут, 51 секунда (1.03.2012 - 07:43) Undertaker написал(а):
Visman
Увы книга-давно пройденный этап(((
Увы книга-давно пройденный этап(((
Спустя 5 минут, 25 секунд (1.03.2012 - 07:48) Visman написал(а):
$filter = "displayname=*".iconv ('CP1251','UTF-8');
Что за странная запись функции?
Спустя 3 минуты, 5 секунд (1.03.2012 - 07:51) Undertaker написал(а):
Visman
Это фильтр. Он говорит что имя дисплея (пользователя) может быть любое а потом меняет кодировку полученных значений с виндовской на утф-8
Это фильтр. Он говорит что имя дисплея (пользователя) может быть любое а потом меняет кодировку полученных значений с виндовской на утф-8
Спустя 3 минуты, 30 секунд (1.03.2012 - 07:55) Visman написал(а):
Цитата (Undertaker @ 1.03.2012 - 12:51) |
может быть любое а потом меняет кодировку полученных значений с виндовской на утф-8 |
Не верю!
Я вижу строку и функцию iconv, которая ни чего не конвентирует из виндовской кодировки в UTF-8.
Т.е. что содержит $filter в итоге не ясно.
Спустя 9 минут, 14 секунд (1.03.2012 - 08:04) Undertaker написал(а):
Visman
В смысле ничего, она по фильтру всё выводит... Что выводит то и кодирует... Может и глупая строка, но нужна она
В смысле ничего, она по фильтру всё выводит... Что выводит то и кодирует... Может и глупая строка, но нужна она
Спустя 2 минуты, 34 секунды (1.03.2012 - 08:07) Visman написал(а):
После нее сделай вывод для проверки ее содержимого
exit($filter);
Спустя 4 минуты, 15 секунд (1.03.2012 - 08:11) Undertaker написал(а):
А после неё много чего дополнительного, логин, пароль, айпишник сервера, и много чего другого, так что изначально посмотреть не получается...
Спустя 22 минуты, 3 секунды (1.03.2012 - 08:33) alexbel2404 написал(а):
http://www.php.net/manual/ru/function.iconv.php
посмотри, сколько параметров она принимает и сравни со своей конструкцией.
посмотри, сколько параметров она принимает и сравни со своей конструкцией.
Спустя 6 минут, 39 секунд (1.03.2012 - 08:40) Undertaker написал(а):
alexbel2404
Ну три параметра у неё, iconv тут причём от темы далеко отвлеклись, тема была в другом, iconv работает
Ну три параметра у неё, iconv тут причём от темы далеко отвлеклись, тема была в другом, iconv работает
Спустя 1 минута, 55 секунд (1.03.2012 - 08:42) alexbel2404 написал(а):
$read = ldap_search($connect, "ou=Users,dc=ufps,dc=omskpost,dc=local", $filter, $fields ) or die (ldap_error($connect));
Ошибку сюда
Ошибку сюда
Спустя 12 минут, 15 секунд (1.03.2012 - 08:54) Undertaker написал(а):
alexbel2404
Цитата |
$read = ldap_search($connect, "ou=Users,dc=ufps,dc=omskpost,dc=local", $filter, $fields ) or die (ldap_error($connect)); Ошибку сюда |
пишет Operations error и ничего более
Спустя 7 минут, 53 секунды (1.03.2012 - 09:02) alexbel2404 написал(а):
попробуй 2 версию протокола поставить. А еще вот что пишут
Цитата |
In order to perform the searches on Windows 2003 Server Active Directory you have to set the LDAP_OPT_REFERRALS option to 0: ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); Without this, you will get "Operations error" if you try to search the whole AD schema (using root of the domain as a $base_dn). As opposed to Windows 2000 Server, where this option was optional and only increased the performance. |
Спустя 12 минут, 32 секунды (1.03.2012 - 09:14) Undertaker написал(а):
alexbel2404
Цитата |
In order to perform the searches on Windows 2003 Server Active Directory you have to set the LDAP_OPT_REFERRALS option to 0: ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); Without this, you will get "Operations error" if you try to search the whole AD schema (using root of the domain as a $base_dn). As opposed to Windows 2000 Server, where this option was optional and only increased the performance. |
Стоит 2008 винда, я проверял эту опцию на наличие ошибки, она на меня не ругалась, говорит всё правильно
попробовал сделать ldap_list вместо ldap_search не прокатило...
Цитата |
попробуй 2 версию протокола поставить |
В смысле 2 версию протокола?
Спустя 1 минута, 1 секунда (1.03.2012 - 09:15) Visman написал(а):
И замени
на
т.к. запись неверная (еще и непонятный знак в начале строки).
$filter = "displayname=*".iconv ('CP1251','UTF-8');
на
$filter = "displayname=*";
т.к. запись неверная (еще и непонятный знак в начале строки).
Спустя 12 минут, 8 секунд (1.03.2012 - 09:27) alexbel2404 написал(а):
в ф-ии ldap() замени 3 на 2 и попробуй
Спустя 4 минуты, 12 секунд (1.03.2012 - 09:32) Undertaker написал(а):
Исправил, разницы нет)))
Спустя 4 минуты, 33 секунды (1.03.2012 - 09:36) alexbel2404 написал(а):
ну тогда гугли) http://www.google.ru/#hl=ru&gs_nf=1&cp=17&...iw=1280&bih=923
Спустя 3 минуты, 6 секунд (1.03.2012 - 09:39) Undertaker написал(а):
alexbel2404
Что я в общем то и делаю))) Ладненько спасибо за помощь очень тебе признателен))))
Что я в общем то и делаю))) Ладненько спасибо за помощь очень тебе признателен))))
Спустя 10 минут, 29 секунд (1.03.2012 - 09:50) Игорь_Vasinsky написал(а):
Undertaker
это у тя на аве не R60 Plus ???
по теме:
добавька в начало скрипта
и дай текст оригинальных нотисов и варнингов.
iconv() крутишь, вертишь как хочешь :D
это у тя на аве не R60 Plus ???
по теме:
добавька в начало скрипта
error_reporting(E_ALL);
и дай текст оригинальных нотисов и варнингов.
iconv() крутишь, вертишь как хочешь :D
Спустя 21 час, 19 минут, 10 секунд (2.03.2012 - 07:09) Undertaker написал(а):
Игорь_Vasinsky
Цитата |
это у тя на аве не R60 Plus ??? |
Я тоже подумал что это он, а так кто его знает))))
Цитата |
добавька в начало скрипта error_reporting(E_ALL); и дай текст оригинальных нотисов и варнингов. |
Добавил, но он мне ничего не выдал((((
Цитата |
iconv() крутишь, вертишь как хочешь ![]() |
Да судя по тому сколько я уже над ним мучаюсь то это он меня вертел как хотел))))))
Спустя 1 час, 6 минут, 10 секунд (2.03.2012 - 08:15) Игорь_Vasinsky написал(а):
Спустя 25 минут, 26 секунд (2.03.2012 - 08:40) alexbel2404 написал(а):
да для работы с ад, есть отличный класс - ADLdap называется) я ему уже писал)
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun