Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal.
Estou desenvolvendo um sistema de cadastro com login. As informações de login ficam armazenadas na sessão. Utilizo o e-mail e a senha para ser feito login no sistema. Ocorre que estou tentando fazer um mecanismo para que o usuário possa alterar sua senha. Achei um sistema de alteração de senha na internet e estou tentando adaptá-lo ao meu projeto. Mas não está dando certo, me retorna sempre a mensagem "Senha atual incorreta".
Abaixo segue o código original e na sequência as adaptações que fiz, assim vocês podem comparar o antes e o depois.
Agradeço a quem puder ajudar.
<?php
session_start();
if (isset($_POST['senha_atual']) && isset($_POST['confirma']))
{
//se o usuário acabou de tentar efetuar login
$pass = md5($_POST['senha_atual']);
$query = "SELECT * FROM usuario "
."WHERE cpf = '{$_SESSION["valid_user"]}'"
." AND senha='$pass'";
$result = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result)>0)
{
if ($_POST['confirma']==$_POST['confirma2'])
{
$alt_senha=mysql_query ("update usuario set senha='".md5($_POST["confirma"])."' where cpf='{$_SESSION["valid_user"]}'");
}
else
{
echo "<script> alert('Confimação de Senha não Confere. Tente outra vez!');</script>";
}
}else{
echo "<script> alert('Senha atual incorreta!');</script>";
}
}
if ($alt_senha)
{
echo "<script> alert('Senha Alterada com Sucesso!'); location.href='./';</script>";
}
// o usuário não tentou efetuar o login ainda ou saiu
// fornece um formulário para efetuar o login
?>
<fieldset>
<legend>Alterar Senha</legend>
<div align="left">
<form id="form1" name="form1" method="post" action="">
<label></label>
<label>Nova Senha:
<input name="confirma" type="password" id="confirma" />
</label>
<label>Confirme Nova Senha:
<input name="confirma2" type="password" id="confirma2" />
</label>
<label>Senha Atual:
<input name="senha_atual" type="password" id="senha_atual" />
</label>
<br><p>
<input type="submit" name="Submit" value="OK!" />
</p>
</form>
</div>
</fieldset>
Abaixo o meu código alterado:
<?php
$page="Alterar senha";
include("includes\header.php");
?>
<title><?php echo $page;?></title>
<?php
if (isset($_POST['senha_atual']) && isset($_POST['confirma']))
{
//se o usuário acabou de tentar efetuar login
$pass = sha1($_POST['senha_atual']);
$query = "SELECT * FROM usuarios "
."WHERE email = '{$_SESSION["email"]}'"
." AND senha='$pass'";
$result = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result)>0)
{
if ($_POST['confirma']==$_POST['confirma2'])
{
$alt_senha=mysql_query ("update usuarios set senha='".sha1($_POST["confirma"])."' where email='{$_SESSION["email"]}'");
}
else
{
echo "<script> alert('Confimação de Senha não Confere. Tente outra vez!');</script>";
}
}else{
echo "<script> alert('Senha atual incorreta!');</script>";
}
}
if ($alt_senha)
{
echo "<script> alert('Senha Alterada com Sucesso!'); location.href='./';</script>";
}
// o usuário não tentou efetuar o login ainda ou saiu
// fornece um formulário para efetuar o login
?>
<fieldset>
<legend>Alterar Senha</legend>
<div align="left">
<form id="form1" name="form1" method="post" action="">
<label></label>
<label>Senha Atual:
<input name="senha_atual" type="password" id="senha_atual" />
</label>
<label>Nova Senha:
<input name="confirma" type="password" id="confirma" />
</label>
<label>Confirme Nova Senha:
<input name="confirma2" type="password" id="confirma2" />
</label>
<br><p>
<input type="submit" name="Submit" value="OK!"/>
</p>
</form>
</div>
</fieldset>Carregando comentários...