Ir para conteúdo
Fórum Script Brasil
  • 0

PHP e LDAP


Gisele.Passoni

Pergunta

Preciso de um script para alterar a senha no LDAP. Todos aqui da empresa estamos com a mesma senha, então preciso desenvolver um script para que o funcionário consiga alterar sua senha via WEB. Na verdade eu tenho um script aqui, mas está dando erro.

O script é esse. Desde já agradeço!

<?php

$message = array();

function changePassword($user,$oldPassword,$newPassword,$newPasswordCnf){

global $message;

$user = $user . "@lan.xxxxx.xxx.xx";

$server = 'xxx.xx.xx.xxx';

$dn = 'CN=Users,DC=lan,DC=xxxx,DC=xxx,DC=xx';

error_reporting(0);

ldap_connect($server);

$con=ldap_connect($server);

ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);

$sr = ldap_search($con,$dn,"(uid=*)");

$records = ldap_get_entries($con, $sr);

$dn = $records[0]["dn"];//

$message[] = "User: " .$user;

$message[] = "Pass: " . $oldPassword;

$message[] = "nPass: " .$newPassword;

if (ldap_bind($con, $user, $oldPassword) === false) {

$message[] = "Error E104 - Current password is wrong.";

return false;

}

else {

$message[] = "CONECTOU.";

if ($newPassword != $newPasswordCnf ) {

$message[] = "Error E101 - New passwords do not match! ";

return false;

}

if (strlen($newPassword) < 8 ) {

$message[] = "Error E102 - Your new password is too short! ";

return false;

}

if (!preg_match("/[0-9]/",$newPassword)) {

$message[] = "Error E103 - Your password must contain at least one digit. ";

return false;

}

if (!preg_match("/[a-zA-Z]/",$newPassword)) {

$message[] = "Error E103 - Your password must contain at least one letter. ";

return false;

}

$entry = array();

$entry["userPassword"] = base64_encode( pack( "H*", sha1( $newPassword ) ) );

// $entry["userPassword"] = base64_encode($newPassword );

if (ldap_modify($con,$user,$entry) === false){

$message[] = "E200 - Your password cannot be change, please contact the administrator."; }// ESSA É A MENSAGEM QUE APARECE AO FAZER O TESTE :unsure:

else {

$message[] = " Your password has been changed. ";

//mail($records[0]["mail][0],"Password change notice : ".$user,"Your password has just been changed.");

}

return false;

}

}

?>

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...