Boa tarde comunidade, mais uma vez preciso de ajuda.
Estou trabalhando com php e mysql, tenho um formulário que insere dados em um bd de mysql, utilizo a função password e insiro o password encriptado na tabela...porém, ao fazer a comprovação para acesso a um site não funciona a função password...ou seja, não encripta para comprovar com o dado armazenado na tabela.......quando não utilizo a função o acesso funciona ok.
PS: como faço para encriptar o password no formulário, ou seja quando se introduza o password no formulário exemplo prova, não apareça a palavra e sim em forma de asteriscos....
Olá, sua dúvida então não é quanto a PHP e sim a HTML. Entendo que você está fazendo duas perguntas, portanto escreverei o que entendi e responderei isso.
1. Como faço para que ao entrar à página que contem o formulário, o conteúdo do campo de senha apareça com ** ou com ••?
Você deve colocar como type “password” assim:
<input type="password" name="senha"
size="20" />
Isto não influi em como se recebe em php, já que $_POST['senha'] será o texto tal como se escreveu SEM CODIFICAR.
2. Como posso codificar uma senha em php para salvá-la no banco de dados?
Bem, se quiser fazê-lo como novato, pode deixá-la sem codificar. Se quiser fazer à antiga pode fazer algo como $senhaCodificada = md5($_POST['senha']);. Se quiser fazer de uma forma mais segura sem se complicar, pode fazer algo como $senhaCodificada = sha1($_POST['senha']);
Menciona uma função password, isso não existe em php, a menos que tenha uma feita por você mesmo.
Nota: as funções md5 e sha1 não têm regresso, por isso para comparar as senhas deverá SEMPRE codificá-las para comparar ambos resultados codificados.
Exemplo:
if ($senhaBancoDados == sha1($_POST['senha'])) ...
Espero ser a informação que necessita.
Saudações!
Por Marco Antonio Camarena