如何在ldap_bind()的参数中管理动态变量?

问题描述 投票:1回答:1

我正在尝试学习PHP,我正在进行我的第一个登录连接页面到我的Active Directory,我已经完成了这两个页面:

form.php的:

<HTML>
    <body>
        <form action="ADconnect" method="post">
         <p>Votre login : <input type="text" name="login"/></p>
         <p>Votre password : <input type="password" name="password"/></p>
         <p><input type="submit" value="OK"></p>
        </form>
    </body>
</HTML>

AD connect.php:

<?php
//check var
    $check_password = $_POST['password'];
    $check_dn= $_POST['login'];

//display of check var
    echo $check_password;
    echo "<br>";
    echo $check_dn;
    echo "<br>";

//AD's connexion var 
    $AD_con = ldap_connect("ADname") or die("could not connect to AD");
    $AD_dn = "CN=".ldap_connect('$_POST['login']').",OU=XXX,OU=XXX,DC=XXX,DC=XXX";
    $AD_password = ldap_connect('$_POST['password']');
    echo $AD_dn;
    echo "<br>";

//what i've tried to convert the AD's var:
    //convert of $AD_con and $AD_password
    //$AD_dn1 = strval($AD_dn);
    //$AD_password1 = strval($AD_password);
    //display of the converts
    //echo $AD_dn1;
    //echo $AD_password1;

//connect function    
    if (isset($_POST['login']) && $_POST['password'] == 0){

        if (ldap_bind($AD_con, $AD_dn, $AD_password)){

                        include 'frontpage.php';
                       }
                    else{

                            echo "invalid user/pass or other error";
                        }
                }   
                else
                    echo "var aren't correctly collect";

?>

当我试图测试这两个页面时,我有一个错误,这就是我得到的:

pitword
Pit wasntme
CN=Resource id #7,OU=XXX,OU=XXX,DC=XXX,DC=XXX
A PHP Error was encountered
Severity: Warning

Message: ldap_bind() expects parameter 3 to be string, resource given

Filename: pages/ADconnect.php

Line Number: 30

Backtrace:

File: C:\wamp64\www\test\application\views\pages\ADconnect.php
Line: 30
Function: ldap_bind

File: C:\wamp64\www\test\application\controllers\pages.php
Line: 10
Function: view

File: C:\wamp64\www\test\index.php
Line: 315
Function: require_once

invalid user/pass or other error

所以我的字段登录名和密码的值从一个页面正确地恢复到另一个页面,我用纯文本测试了连接函数,看看问题是否来自于此。但我已经到达了我的AD服务器。问题似乎是当我使用ldap_connect()函数时,我的变量$ AD_dn和$ AD_password的值被更改为“resource#7”和“resource#8”。通常它必须为$ AD_dn显示“pit wasntme”,为连接功能显示“pitpass”$ AD_password。

通过阅读错误,我明白我将它们转换为字符串,因为它是ldap_bind需要的第二个和第三个参数。我已经尝试过我在网上找到的东西(我把它放在我最后一个回音下面的评论中“ “),但结果仍然相同。

如果有人可以提供一个提示或解释我做错了什么,或者我如何正确地恢复(以良好的格式)我输入的值由我的表格发送,这将是伟大的。

感谢花时间阅读这个帖子。

php html variables active-directory ldapconnection
1个回答
0
投票

好的,谢谢谁试图帮助我,但我找到了解决方案:我在$ _POST ['登录']和$ _POST ['密码']上使用ldap_connect()但如果我删除此功能一切正常!

© www.soinside.com 2019 - 2024. All rights reserved.