I have PHP below that connects to AD using LDAP
, working perfectly:
<?php
$username2 = $_POST["username"]; //Recebe o usuario do form "index.php"
$password = $_POST["senha"]; //Recebe a senha do form "index.php"
//Força a alteração do nome para minuscula, no caso de o navegador nao aceitar o JS de transformação.
$username = strtolower($username2);
//Seta exibição de Erros
ini_set('error_reporting',E_ALL);
ini_set('display_errors',1);
//Conexao com AD
$ldapconfig['host']= '192.168.203.5'; //AD-001
$ldapconfig['port']= '389'; //Porta Padrão
$domain= 'peccin.local';
//Faz conexão com AD usando LDAP
$sn= ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($sn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($sn, LDAP_OPT_REFERRALS, 0);
@$bind=ldap_bind($sn, $username .'@'.$domain, $password);
//Testa se deu erro de conexão ou usuario e senha em branco (tentativa de injection)
if ((!$bind) || empty($username) || empty($password)) {
?>
<script language="JavaScript">
<!--
alert("Usuário/Senha Inválida!");
window.location = 'index.peccin';
//-->
</script>
<?php
//grava acesso negado
include ("org/logger_negado.php"); //GRAVA ACESSO
//Fecha conexao
ldap_unbind($sn);
} else {
// Cria sessão
if (!isset($_SESSION)) session_start();
// Salva os dados encontrados na sessão
$_SESSION['UsuarioID'] = $username;
$_SESSION['UsuarioPass'] = $password;
//Direciona para a página principal
include "org/logger.php"; //GRAVA ACESSO
echo "<script>window.location='index2.peccin'</script>";
}
?>
But today came the need to rescue the email address registered in AD for the logged in user, I tried the code below, but it only returns array error, without displaying the result. Can you get this information?
$filter = "(sAMAccountName=diego*)";
$attributes = array('mail');
$search = ldap_search($sn,'DC=peccin, DC=local', $filter, $attributes);
$data = ldap_get_entries($sn, $search);
foreach ($data AS $key => $value){
echo $value[$key];
}