Recuperar dados login - PHP/LDAP

PHP

14/08/2018

Boa tarde!

Tenho um sistema (intranet) desenvolvido em PHP com login LDAP (Active Directory Windows). O acesso/conexão ocorre perfeitamente.
O que eu quero é recuperar as informações do usuário logado. Tentei usando ldap_search, ldap_read, ldap_get_values mas não sei onde estou errando.

Minha estrutura basicamente é assim: index com o formulário que solicita user/pass que chama o ''arquivo'' que verifica o login digitado. Nesse verificador se o login passar, chama a página home.

Alguém tem alguma ideia de como recuperar e exibir na home, por exemplo, o nome do usuário logado?

Agradeço desde já.

Códigos para clarear melhor:
index.php

<?php
    session_start();
?>
<html>
<head>
<script language="JavaScript" type="text/javascript" src="js/funcs.js"></script>
</head>
<body background="imagens/background.jpg">

    <form method="post" action="verif.php" name="form" AUTOCOMPLETE=''ON'' onSubmit="return valida()">
        <center>
		<br>
		<h1>Titulo</h1>
		<br>
		<br>
		Usuario:<br>
        <input type="text" name="usu" size="50" maxlength="50" >
        <br>
        Senha:<br>
        <input type="password" name="senha" size="50" maxlength="9" >
        <br><br>
        <input type="submit" value="Entrar">
		</center>
    </form>

</body>
</html>

verif.php
<?php

set_time_limit(0);

function valida_ldap($srv, $usr, $pwd)
{

    $ldap_server = $srv;
    $auth_user = $usr;
    $auth_pass = $pwd;

    // Tenta se conectar com o servidor
    if (!($connect = @ldap_connect($ldap_server))){
       return FALSE;
    }

    // Tenta autenticar no servidor
    if (!($bind = @ldap_bind($connect, $auth_user, $auth_pass))) {
        // se nao validar retorna false
        return FALSE;
    } else {
        // se validar retorna true
        return TRUE;
    }

} // fim funcao conectar ldap

$dominio = "@dominio.com.br";
$usu = $_REQUEST[''usu''].$dominio;
$senha = $_REQUEST[''senha''];
$ip_server = "ip_servidor";

if (valida_ldap($ip_server, $usu, $senha)) {
    echo "Usuário autenticado.<br>";

    session_start();
    $_SESSION[''usu''] = $usu;

    header("Location: home.php");

}else {
	echo "<center><br><br>";
    echo "<h2>Usuário ou Senha Inválidos.";
    echo "<br><br><input type=''button'' value=''voltar'' onclick=''location.href=\\\\\\\\"index.php\\\\\\\\";''>";
}

?>
Bruno

Bruno

Curtidas 0

Melhor post

Rafael Penido

Rafael Penido

14/08/2018

Amigo,

Pelo que vi do seu código, você esta salvando na sessão os dados corretamente, na linha 37

$_SESSION["usu"] = $usu;


Você pode criar uma página chamada teste.php e nela colocar o código abaixo:

<?php
var_dump($_SESSION);
?>


Assim, depois que você autenticar, abra esse arquivo! Você ira ver tudo que esta salvo na sessão! Se o usuário estiver lá corretamente, perfeito! Basta você adicionar na home a abertura da sessão como feito anteriormente (session_start() ) e depois exibir $_SESSION["USU"]

Agora se no arquivo teste.php não mostrar nenhum valor na sessão, o erro esta na hora de atribuiir.

Vlw
GOSTEI 1

Mais Respostas

Bruno

Bruno

14/08/2018

Me desculpem, postei o código sem as tags
code.
Como não encontrei (e acredito que não seja possível) editar o post, deixo a minha explicação rs...
GOSTEI 0
Bruno

Bruno

14/08/2018

Amigo,

Pelo que vi do seu código, você esta salvando na sessão os dados corretamente, na linha 37

$_SESSION["usu"] = $usu;


Você pode criar uma página chamada teste.php e nela colocar o código abaixo:

<?php
var_dump($_SESSION);
?>


Assim, depois que você autenticar, abra esse arquivo! Você ira ver tudo que esta salvo na sessão! Se o usuário estiver lá corretamente, perfeito! Basta você adicionar na home a abertura da sessão como feito anteriormente (session_start() ) e depois exibir $_SESSION["USU"]

Agora se no arquivo teste.php não mostrar nenhum valor na sessão, o erro esta na hora de atribuiir.

Vlw


Opa, isso consegui. Tudo certo!
E para recuperar os demais dados desse usuário logado?
Por exemplo, exibir o email cadastrado no AD? Já que a autenticação está correta e consigo exibir o user logado, gostaria de buscar informações desse no AD... tentei com algumas dessas funções que citei na pergunta mas sem sucesso

Valeu
GOSTEI 0
POSTAR