2015-11-23 2 views
0

Мне нужно подключиться к серверу ldap с php, но, к сожалению, я не могу связать его с методом ldap_bind(), так как ldap_connect() всегда возвращает true.Как определить LDAP LDAP и LDAP LDAP с помощью php?

Я использую пример сценария доступный на php.net

Я имею сомнения, что ли LDAP хозяин окна или нет. Как я могу определить это по коду?

Код

<?php 
// basic sequence with LDAP is connect, bind, search, interpret search 
// result, close connection 

echo "<h3>LDAP query test</h3>"; 
echo "Connecting ..."; 
$ds=ldap_connect("localhost"); // must be a valid LDAP server! 
echo "connect result is " . $ds . "<br />"; 

if ($ds) { 
    echo "Binding ..."; 
    $r=ldap_bind($ds);  // this is an "anonymous" bind, typically 
          // read-only access 
    echo "Bind result is " . $r . "<br />"; 

    echo "Searching for (sn=S*) ..."; 

    // Search surname entry 
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*"); 
    echo "Search result is " . $sr . "<br />"; 

    echo "Number of entries returned is " . ldap_count_entries($ds, $sr) . "<br />"; 

    echo "Getting entries ...<p>"; 
    $info = ldap_get_entries($ds, $sr); 
    echo "Data for " . $info["count"] . " items returned:<p>"; 

    for ($i=0; $i<$info["count"]; $i++) { 
     echo "dn is: " . $info[$i]["dn"] . "<br />"; 
     echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />"; 
     echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />"; 
    } 

    echo "Closing connection"; 
    ldap_close($ds); 

} else { 
    echo "<h4>Unable to connect to LDAP server</h4>"; 
} 
?> 
+1

все кода вы используя добавьте к вашему вопросу пожалуйста. –

+0

@SergioIvanuzzo Код добавлен. – Aatman

+0

Теперь, если я использую var_dump ($ r), то я могу видеть, что ldap_bind() возвращает false в моем случае – Aatman

ответ

0

я встретил проблему before.maybe из версии

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

Я использовал это, чтобы решить эту проблему, вы можете попробовать.

+0

Я попробовал, но didn ' Работа для меня! – Aatman

0

, если вы хотите, чтобы определить, является ли ОС Windows, или вы не можете использовать PHP константу PHP_OS

Вот небольшой пример того, как функция isWindows() может выглядеть следующим образом:

function isWindows() { 
    if(substr(strtolower(PHP_OS), 0, 3) === 'win') { 
     return true; 
    } 

    return false; 
} 

var_dump(isWindows()); 
+0

Это не будет работать в моем случае, поскольку сервер, на котором мне нужно подключиться с помощью LDAP, не такой же, как сервер, на котором работает PHP. – Aatman

+1

Хорошо, им жаль, что не получилось – swidmann