2011-11-08 94 views
3

我想問你,我怎樣才能從ldap中獲得用戶名。正如你可以看到下面,我輸入的用戶名「smith2」如何從LDAP獲取用戶名?

$_SERVER["REMOTE_USER"] = 'smith2'; 
$param = $_SERVER["REMOTE_USER"] 

,我可以得到他的第一個名字,就像這樣:

$ldap1 = new ldapl; 
    $fname=$ldap1->getFname($param); 

,因爲我有某種形式的一些領域,這非常有用,其默認填寫(姓名,名字等)。

它必須是動態的。每個人都有一臺個人電腦,所以人Y應該看到他的名字,名字等。這個人X他的名字,名字等。

但是我不知道如何獲得用戶名。你能解釋給我嗎?

感謝

+0

JavaScript就無法幫助你在這裏。 – jrummell

+0

@ jrummell但我認爲jQuery真的很棒,可以做所有事情嗎?我知道我在某個地方閱讀過。 – Blazemonger

+0

這對客戶端腳本來說很好,但LDAP需要服務器端代碼,php就是你的情況。 – jrummell

回答

1

您可以通過一個AJAX調用請求的用戶名:

var remote_user = ''; 
$.get('path/to/server-side.php', function (response) { 
    remote_user = response; 
    /*you can populate your forms with information returned from your PHP script*/ 
}); 

這段代碼從PHP腳本請求信息。你的PHP腳本只能輸出$_SERVER['REMOTE_USER'],這將是AJAX回調中的response變量。

PHP腳本和JavaScript之間進行通信的一個好方法是使用PHP函數json_encode()輸出您的服務器響應。然後使用jQuery方法$.getJSON(),該方法會自動將響應解析爲可以迭代的JavaScript對象。

的文檔$.get()http://api.jquery.com/jquery.get

的文檔json_encode()http://www.php.net/json_encode

+0

嗨,謝謝你的回答。我有一個文件inc.php與ldapconn,用戶和傳遞連接到ldap。我有另一個文件class.php所有函數getName($ username),getFname($ username)等。我可以使用你的解決方案嗎? – user1013984

+0

當然。讓JavaScript AJAX調用一個包含'class.php'和'inc.php'並使用'getName()'''getFname()'函數的PHP腳本。在這個PHP文件中,輸出這些函數的結果,無論你輸出什麼響應將在你的JavaScript中。我推薦使用'echo json_encode(array('fname'=> getFname(),'lname'=> getName()))';你的輸出將如下所示:'{「fname」:「」,「lname」:「」}'你可以像這樣訪問Javascript中的數據:'response.fname'和'response.lname' 。還要將'$ .get()'改爲'$ .getJSON()',這樣你的JSON將被解析。 – Jasper

+0

非常感謝您的回答。我試圖按照你在主要帖子回答中所說的話,但我不明白「這段代碼會從PHP腳本請求信息,你的PHP腳本可能只輸出$ _SERVER ['REMOTE_USER'],那將是響應變量AJAX回調「。我應該使用jQuery嗎?你可以給我一個小例子,或者你知道與一些例子的鏈接嗎?謝謝。 – user1013984