Search registered email in AD with PHP

Asked

Viewed 372 times

1

I have PHP below that connects in 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 arose the need to rescue the email address registered in AD for the logged user, I tried the code below, but it only returns array error, without displaying the result. You can get that 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];

}
  • Which error is returned?

  • I edited the question with the error.... thank you

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.