Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando fazer um sistema para mudar a senha do usuario. Mas esta acorrendo algum erro no seguinte comando.
$up = mysql_query("UPDATE Contas SET Passwd=Old_Password('$senha'), codigo='$codigo' WHERE ID = '$user'");
Alguém tem ideia do que pode ser? Tenho a pressentimento que o Old_Password esta sendo usado incorretamente.
O old_password seria para pega a encriptação da senha do banco de dados. Eu usei no registro para criptografar as senhas. Me pergunto se eu nao usar no update ele vai colocar a senha sem encriptar.
Ainda nao esta atualizando a tabela. Esse e o código inteiro.
if(@$_GET['go'] == 'mudar'){
$senha = $_POST['senha'];
if(empty($senha)){
echo "<script>alert('Preencha todos os campos para mudar sua senha.*Senha'); history.back();</script>";
exit;
}else {
$caracteres = "0123456789abcdefghijklmnopqrstuvwxyz";
$codigo = substr(str_shuffle($caracteres),0,10);
$up = mysql_query("UPDATE contas SET Passwd='$senha4', codigo='$codigo' WHERE ID = '$user' ");
echo "<script>alert('Senha mudada com sucesso! Voce esta sendo redirecionado para a pagina de login.');</script>";
session_destroy();
echo "<meta http-equiv='refresh' content='0, url=login.php'>";
exit;
}
}$up = mysql_query("UPDATE contas SET Passwd='$senha4', codigo='$codigo' WHERE ID = '$user' ");
1- A variável '$senha4' não foi definida antes de ser utilizada, creio que queria se referir a '$senha', definida anteriormente.
2- A variável '$user' pela mesma forma, creio que você quer que ela possua o mesmo valor da sessão 'user'
Outra observação, qual o intuito da variável '$codigo' na sua lógica? Criar uma chave aleatória que será tachada a conta do usuário?
Caso sim, sugiro que criptografe o nome de usuário ou data de cadastro do mesmo, evitando que todos os usuários tenham a mesma chave.
Abraços. ^_^
Edit: A senha nao foi encriptada na bd.
Habilite todas as exibições de erro, como mostrado neste tópico. Não apenas a parte do display_erros/error_reporting, mas também o uso de mysql_error(). Isso tudo vai te apontar os erros
PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql
>
Habilite todas as exibições de erro, como mostrado neste tópico. Não apenas a parte do display_erros/error_reporting, mas também o uso de mysql_error(). Isso tudo vai te apontar os erros
PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql
Nao entendi muito bem quer dizer que agora eu nao preciso o tal do config.php? Pq tipo ele leva as configuraçoes do servidor no codigo:
$mysqli = new mysqli('root', 'usuario', 'senha', 'bd');
E como eu poderia fazer pra encriptar a senha no update.?habilitar as exibições de erro não tem nada a ver com descartar seu config.php ou qualquer outro arquivo
Leia o link que mandei. Só precisa habilitar as mensagens de erro. Não remova nenhum arquivo
Outra coisa, você conecta usando mysqli e executa a query com mysql? Se for isso, nunca funcionará mesmo. Ou um ou outro.
>
Estou tentando fazer um sistema para mudar a senha do usuario. Mas esta acorrendo algum erro no seguinte comando.
Alguém tem ideia do que pode ser? Tenho a pressentimento que o Old_Password esta sendo usado incorretamente.
Erro na síntese.
A que se refere "Old_Password"? Algum tipo de variável, constante ou função ?
Segue código corrigido: