2011-11-08 64 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