Я пытаюсь выучить 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>
ADconnect.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 меняются на «ресурс № 7» и «ресурс № 8».Обычно он должен отображать «pit wasntme» для $ AD_dn и «pitpass» $ AD_password для функции подключения.
Читая ошибку, я понял, что должен преобразовать их в строки, потому что это то, что нужно ldap_bind для второго и третьего параметров.Что я пробовал с тем, что я нашел в сети (я поместил это в своих комментариях ниже моего последнего эха "
"), но результат все тот же.
Если кто-нибудьможет дать совет или объяснение того, что я делаю неправильно или как я могу восстановить (в хорошем формате) мои введенные значения, отправленные в моей форме, это будет здорово.
Спасибо, что нашли время длячитая эту ветку.