Pedro
Ajuda com esse script de conexão com AD
20 de January de 2016 às 06:32PM
Boa tarde pessoal.
Preciso de ajuda com esse script. Tenho uma intranet em php na empresa num servidor ubuntu e no outro servidor temos o Active Directory com todos os funcionários cadastrados. Eu preciso fazer com que ao fazer login na página da intranet, ele verifique no AD o usuário e a senha e caso o usuário seja cadastrado ele consiga logar na página. Consegui achar uns scripts pela internet, porém ele não esta verificando no AD se o usuário existe e não está autenticando ele.
Segue os scripts:


No Index.php, o funcionário coloca o usuário e a senha.


Index.php

<?php


session_start('sessao');

?>
<html>
<head>
<script language="JavaScript" type="text/javascript" src="funcs.js"></script>
</head>
<body>

<form method="post" action="verif.php" name="form" AUTOCOMPLETE='ON' onSubmit="return valida()">
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">
</form>

</body>
</html>


Aqui no verifica.php ele teria que verificar se os dados no login estão certos lá no AD e logar o usuário na intranet, porém dá esse erro:

"; session_start(); $_SESSION['usu'] = $usu; header("Location: painel.html"); }else { echo "Usuario ou Senha Invalidos"; echo "
"; } ?>

Mesmo o usuário e a senha estando certos, ele não loga de jeito nenhum.


verifica.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 = "@meudominio.local";
$usu = $_REQUEST['usu'].$dominio;
$senha = $_REQUEST['senha'];
$ip_server = "192.168.1.3";

if (valida_ldap($ip_server, $usu, $senha)) {
echo "usuario autenticado<br>";

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

header("Location: painel.html");

}else {
echo "Usuario ou Senha Invalidos";
echo "<br><input type='button' value='voltar' onclick='location.href=\"index.html\";'>";
}

?>


E o funcs.js é só pra não tentar logar sem escrever os dados.
funcs.js

function valida() {

if (form['usu'].value == "") {
alert("O campo USUARIO e obrigatorio");
form['usu'].focus();
return false
}

if (form['senha'].value == "") {
alert("O campo SENHA e obrigatorio");
form['senha'].focus();
return false
}
}


Se alguém puder me ajudar e dizer onde está o problema e como consigo resolver isso, eu ficarei muito grato!
Desde já agradeço!
Eduardo Molina
Re: Ajuda com esse script de conexão com AD
24 de January de 2016 às 01:12PM
Você não especifico o conteúdo das variáveis.


Isso aqui teria que ser feito, para receber as informaçoes digitadas no formulario login.
Ex.
$usuario = $_POST['usu'];
$senha = $_POST['senha'];

// depois disso tu iria checar se ele existe.

function valida_ldap($srv, $usuario , $senha )
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.