簡體   English   中英

PHP LDAP用戶身份驗證不起作用

[英]PHP LDAP user authentification not working

我正在嘗試通過PHP為內部網頁實現LDAP連接。 我為PHP使用統一服務器。 http://www.uniformserver.com/ 作為測試,我試圖在這里連接到測試服務器。 http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/

但是我不明白,它似乎甚至不在if / else語句中。

這是我的代碼:

<?php

$ldapServer = 'ldap.forumsys.com';
$ldapPort = 389;

if(isset($_POST['username']) && isset($_POST['password'])){
    echo "Hello both parameters are set";
    $username = $_POST['username'];
    $password = $_POST['password'];
    echo "<br>" . $username;
    echo "<br>" . $password;
    $ds = ldap_connect($ldapServer, $ldapPort);

    if (ldap_bind($ds, $_POST['username'], $_POST['password'])) {
        // Successful auth
        $_SESSION['username'] = $_POST['username'];
        $_SESSION['password'] = $_POST['password'];
        // log them in!
        echo 'you are logged in ' . $_SESSION['username'] ;    
        //redirect after logged in2
    } else {
        // error message

        echo 'auth failed';
    }
}
else
{
?>
    <form action="login.php" method="POST">
        <label for="username">Username: </label><input id="username" type="text" name="username" required="true" /> 
        <label for="password">Password: </label><input id="password" type="password" name="password" required="true" />        <input type="submit" name="submit" value="Submit" />
    </form>
<?php
 } ?> 

顯示了我的第一個回聲(密碼和用戶名),但此后未顯示任何內容。 有人知道為什么嗎? 我沒有任何錯誤,但這是我的回復。

Hello both parameters are set
username
password

謝謝

首先,請檢查是否已建立連接。 以下代碼段是一種檢查方式:

if ($ds) {
// Successful connection
} else {
echo "Error connecting";
}

我的猜測是,您看到回顯部分是因為它們在ldap_bind之外,而您沒有得到綁定是因為您的連接失敗了。 仔細檢查服務器地址和/或嘗試使用IP地址。 請注意,您可以在此階段安全刪除端口,因為默認為389,因此只需使用

$ds=ldap_connect("ip/address");

會很好的。

現在,由於您要查找的是外部域地址,因此它可能是LDAPS,因此請仔細檢查(或可能不是)。 在這種情況下,您將需要

$ds = ldap_connect('ldaps://ip', 636);

讓我知道這是否有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM