Jump to content
ewersonsv

[Resolvido] [Sistema De Login] Como Fazer "Alterador De Senha" Verifica a Antiga. [MySQL]

Recommended Posts

eu tou usando javascript para verifica se a nova estão iguais porem queria por para verifica a antiga....

Demostração Validando....

CODIGO JS:

function validarSenha (input){ 
    if (input.value != document.getElementById('senhanova').value) {
    input.setCustomValidity('Repita a senha corretamente');
  } else {
    input.setCustomValidity('');
  }
}

LEMBRANDO: TOU USANDO "MYSQL"
obs.: Não é PDO ou MySQLi

  • Gostei 1
  • +1 1

Share this post


Link to post
Share on other sites

Coloca seu código em PHP para poder ajudar melhor.

 

Acredito que pelo que você colocou a melhor opção seria com seu código php obter a senha antiga no banco de dados e passar um json para o javascript para que verifique a senha antiga por lá.

  • +1 1

Share this post


Link to post
Share on other sites

Imagino que deva estar utilizando algum hash em suas senhas, portanto você pode usar ajax quando o campo antiga senha for preenchido ou fazer todas as verificações ao realizar o post.

  • +1 1

Share this post


Link to post
Share on other sites
<?php
if($_POST['senha']) {
	$senhanova = md5(mysql_real_escape_string($_POST['senhanova']));//
	mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
}

Para está função so tenho esse codigo "Mysql" e o JS... porem queria que o campo da antiga funciona-se porem nao faço a minima ideia pos sou novo e ainda tou aprendendo...

  • Gostei 1
  • +1 1

Share this post


Link to post
Share on other sites

Esse código é apenas para gravar a senha.

 

No código que você chama a tela de alterar a senha, precisa obter os dados da senha antiga no banco de dados e jogar na vista para comparar com a senha digitada de forma parecida com o que fez com a senha nova.

  • +1 1

Share this post


Link to post
Share on other sites
27 minutos atrás, marcelobbt disse:

Esse código é apenas para gravar a senha.

 

No código que você chama a tela de alterar a senha, precisa obter os dados da senha antiga no banco de dados e jogar na vista para comparar com a senha digitada de forma parecida com o que fez com a senha nova.

è Por Um MODAL:

 

                    <div role="tabpanel" class="tab-pane active" id="senha">
   				
    					<form role="form" action="" method="post" enctype="multipart/form-data">
							
							<div class="form-group">
    				  			<input type="password" class="form-control input-lg" name="senhaantiga" id="senhaantiga" value="" placeholder="Nova Senha" required>
    				  		</div>
							
							<div class="form-group">
    				  			<input type="password" class="form-control input-lg" name="senhanova" id="senhanova" value="" placeholder="Nova Senha" required>
    				  		</div>
    				  	    
    				  		<div class="form-group">
    				  			<input type="password" class="form-control input-lg" name="resenha" id="resenha" oninput="validarSenha(this)" value="" placeholder="Repetir A Nova Senha" required>
    				  		</div>
    				  	    
    				  		<div class="form-group">
								<div id="divcheck">
								
								</div>
							</div>
		
    				  	
    				  		<hr>
    				  	
    				  		<center>
								<input name="senha" class="btn btn-primary btn-embossed btn-lg btn-wide" type="submit" value="Alterar" />
								<button type="button" data-dismiss="modal" class="btn btn-danger btn-embossed btn-lg btn-wide"> Cancelar </button>
    				  		</center>
    				
    					</form>
    			
                    </div>

 

  • Gostei 1
  • +1 1

Share this post


Link to post
Share on other sites
<?php
if($_POST['senha']) {
  
	$senhanova = md5(mysql_real_escape_string($_POST['senhanova']));
  	$senhaantiga = md5(mysql_real_escape_string($_POST['senhaantiga']));
  	
  	$q = mysql_query("SELECT senha FROM usuarios WHERE email = '{$_SESSION['usuarioEmail']}'");
  	$oldPass = mysql_fetch_assoc( $q );
	$oldPass = $oldPass['senha'];
  
  	if( $oldPass != $senhaantiga ){
    	die('Senha antiga está incorreta');
    }
  
	mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
  
}

Bom, basicamente você precisa antes de dar o update, pegar a senha do usuário e comparar com o que ele digitou, caso estejam diferentes, para o script (die) e diz que a senha está incorreta

  • +1 1

Share this post


Link to post
Share on other sites
18 minutos atrás, Mateus Silva disse:

<?php
if($_POST['senha']) {
  
	$senhanova = md5(mysql_real_escape_string($_POST['senhanova']));
  	$senhaantiga = md5(mysql_real_escape_string($_POST['senhaantiga']));
  	
  	$q = mysql_query("SELECT senha FROM usuarios WHERE email = '{$_SESSION['usuarioEmail']}'");
  	$oldPass = mysql_fetch_assoc( $q );
  
  	if( $oldPass != $senhaantiga ){
    	die('Senha antiga está incorreta');
    }
  
	mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
  
}

Bom, basicamente  você precisa antes de dar o update, pegar a senha do usuário e comparar com o que ele digitou, caso estejam diferentes, para o script (die) e diz que a senha está incorreta

 

è bem isso que quero porem nao consegui coloca para verificar a senha antiga mesmo colocando certo pula pro erro (die)

 

  • +1 2

Share this post


Link to post
Share on other sites
18 minutos atrás, Mateus Silva disse:

/* Substitua esse: */
if( $oldPass != $senhaantiga )
/* Por esse: */
if( $oldPass['senha'] != $senhaantiga )

 

 

eu alterei essa parte ai e o campo de repetir a nova senha:

<div class="form-group">
<input type="password" class="form-control input-lg" name="senhaantiga" id="senhaantiga" value="" placeholder="Senha Antiga" required>
</div>
							
<div class="form-group">
<input type="password" class="form-control input-lg" name="senhanova" id="senhanova" value="" placeholder="Nova Senha" required>
</div>
    				  	    
<div class="form-group">
<input type="password" class="form-control input-lg" name="senhaconf" id="senhaconf" oninput="validarSenha(this)" value="" placeholder="Repetir A Nova Senha" required>
</div>

porem até ai tudo certo; funcionando o validor mais o problema mesmo com o erro o comando troca a senha...

 

<?php
if($_POST['senha']) {
  
	$senhanova = md5(mysql_real_escape_string($_POST['senhanova']));
  	$senhaantiga = md5(mysql_real_escape_string($_POST['senhaantiga']));
  	
  	$q = mysql_query("SELECT senha FROM usuarios WHERE email = '{$_SESSION['usuarioEmail']}'");
  	$oldPass = mysql_fetch_assoc( $q );
  
  	if( $oldPass['senha'] != $senhaantiga ){
    	//die('Senha antiga está incorreta');
		echo "<script> window.alert('$nome, Sua Senha Antiga Está Incorreta!'); </script>";
    }
  
	mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
  
}

 

  • Gostei 2

Share this post


Link to post
Share on other sites
4 minutos atrás, Alaerte Gabriel disse:

Cadê o session_start() no início do documento ?

esta no começo do começo da pagina essa parte é uma função para o modal; porem o mesmo com session_start(); ainda que digita a senha erra mais o problema que nao esta impedindo do mesmo ser alterada; e quando envia a senha correta nao mostra o erro e troca normalmente; o problema e que mesmo digitando a senha antiga errada a senha  ela é alterada.

  • Gostei 1
  • +1 1

Share this post


Link to post
Share on other sites

die que eu havia colocado não era atoa, rs. Note que não existe um else, logo, se você não interromper o script com die, exit ou return false, o script vai continuar rodando e a senha vai ser alterada.

Solução é manter uma das opções para interromper o script ou chamar o mysql dentro de um bloco else

  • +1 1

Share this post


Link to post
Share on other sites
if( $oldPass['senha'] != $senhaantiga ){
    	//die('Senha antiga está incorreta');
		echo "<script> window.alert('$nome, Sua Senha Antiga Está Incorreta!'); </script>";
    }else{
		mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
	}
  • +1 1

Share this post


Link to post
Share on other sites
36 minutos atrás, Mateus Silva disse:

die que eu havia colocado não era atoa, rs.

Sabe quando tamos começando aprende ja pensamos que podemos muda de tudo kkk Obg :D

----------------------------------------------------------------------------

36 minutos atrás, Mateus Silva disse:

Solução é manter uma das opções para interromper o script ou chamar o mysql dentro de um bloco else

era bem isso que tava faltando :p

----------------------------------------------------------------------------

33 minutos atrás, Alaerte Gabriel disse:

if( $oldPass['senha'] != $senhaantiga ){
    	//die('Senha antiga está incorreta');
		echo "<script> window.alert('$nome, Sua Senha Antiga Está Incorreta!'); </script>";
    }else{
		mysql_query("update usuarios set senha='$senhanova' where (email = '".$_SESSION['usuarioEmail']."')");
	}

Obrigado :D

----------------------------------------------------------------------------

Resolvido <3

foi pq eu tirei o Die :p a do else tbm funcionou vou usa obrigado!

 

Mateus Silva

Alaerte Gabriel

Deus Os Abençoem :D

 

 

 

  • Gostei 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By ricardonews
      olá pessoal, alguém ja teve dificuldade de logar no banco com um formulario de login feito pelo ajax quando a senha é criptografada?
      a minha está o sendo pelo md5 e quando deixo sem criptografia eu logo no banco.  Eu gostaria de logar com criptografia.
      vou deixar  a index e o arquivo que busca no banco de dados
      <!doctype html> <html> <?php require_once"config.php"; ?> <head> <title>Formulario de login</title> <style type="text/css"> html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } #div_login{ width:500px; margin:40px auto; position:relative; background-color: #ffffff; padding: 20px; border-radius: 5px; } #message{ width:100%; text-align:center; color:red; margin-bottom: 20px; } #div_login h1 { text-align: center; } #div_login input, #div_login textarea,#div_login a{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #div_login #but_submit,#div_login a { background-color: #27ae60; font-weight: bold; text-transform: uppercase; color: #ffffff; width: auto; margin: 0; padding: 10px 20px; } </style> <!--<link href="style.css" rel="stylesheet" type="text/css">--> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "email e senhas invalidos!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <div class="container"> <div id="div_login"> <h1>Login</h1> <div id="message"></div> <div> <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="email" /> </div> <div> <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="senhas"/> </div> <div> <input type="button" value="logar" name="but_submit" id="but_submit" /> <a href="inicio.php"><strong>Cadastrar</strong></a> </div> </div> </div> </body> </html> agora vem oque busca os dados no banco e é justamente essa parte que eu não entendo oque acontece.
      <?php require_once "config.php"; // AQUI É O PESQUISAR PHP $uname = mysqli_real_escape_string($con,$_POST['username']); $password = mysqli_real_escape_string($con,$_POST['password']); if ($uname != "" && $password != ""){ $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE email='".$uname."' and password='".$password."'"; $result = mysqli_query($con,$sql_query); $row = mysqli_fetch_array($result); $count = $row['cntUser']; if($count > 0){ $_SESSION['uname'] = $uname; echo 1; }else{ echo 0; } } desde já fico agradeço 
    • By D2th3
      Pessoal,

      Sou intermediário em PHP e estou estudando OO. Vi exemplos de do MVC Pattern usando template view contudo de simples substituição do marcador pelos dados. Eu gostaria que você me pudessem indicar um material de estudo, exemplos de código de um Model, Controller e View que carregasse a template e exibisse, contudo dentro dessa template existisse condicionais e loops como marcadores a serem processados pelo PHP.
       
      Agradeço a ajuda aos meus estudos.
    • By henricv
      Bom dia.
       
      Estou iniciando na área de desenvolvimento de testes automatizados em Ruby+Cucumber+Capybara.
      Atualmente, estou com o projeto de automação com informações chumbadas no código, porém gostaria de realizar consultas no banco de dados da empresa, para aumentar o nível de minha aplicação.
       
      O problema é que não estou conseguindo achar algum tutorial, ou script como em outras linguagens, que realize esta conexão com o banco de dados. Não utilizo Rails em minha aplicação.
       
      Tentei utilizar o comando em minha aplicação, seguindo um tutorial que estava mais organizado, porém não consegui realizar a conexão correta.
      gem install mysql2  
      Poderiam me ajudar?
    • By perfectraider99
      Galera bom dia, recentemente me pediram pra fazer um sistema de postagem para um site de carros . 
      pesquisei formas de fazer e encontrei um projeto de upload de imagens 
      fiz tudo certinho no local host e funcionou perfeitamente mas quando fui colocar no servidor nada funcionou, nem enviava o formulario nem amostrava os produtos.
      por favor galerinha estou a muito tempo tentando resolver esse problema . 
      aqui tá o meu codigo 
       
      index : 
       
       
      <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> body{ font-family: arial; } section{ background-color: rgb(123,104,238,.4); width: 70%; margin: auto; } input, label, textarea{ display: block; width: 100%; height: 30px; } label{ line-height: 30px; margin-top: 10px; } textarea{ height: 150px; } form{ width: 60%; margin: auto; box-sizing: border-box; padding: 20px; } #botao{ margin-bottom: 10px; width: 50%; background-color: rgba(0,0,0,.8); color: white; height: 40px; cursor: pointer; border: none; font-size: 15pt; } h1{ text-align: center; } #foto{ margin-top: 20px; margin-bottom: 20px; } a{ background-color: rgb(0,255,127); display: block; width: 220px; height: 50px; color: black; text-decoration: none; float: right; text-align: center; line-height: 50px; margin: 20px; border: 1px solid rgba(0,0,0,.2); } </style> </head> <body> <section> <a href="produtos.php">Ver todos os produtos</a> <form method="POST" enctype="multipart/form-data"> <h1>ENVIO DE IMGS</h1> <label for="nome">Nome do Produto</label> <input type="text" name="nome" id="nome"> <label for="des">Descrição</label> <textarea name="desc" id="desc"></textarea><br> <input type="file" name="foto[]" multiple id="foto"> <input type="submit" id="botao"> </form> </section> </body> </html> produtos : <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> section{ width: 70%; margin: auto; font-family: arial; } div{ width: 15%; float: left; padding: 1%; background-color: rgb(123,104,238,.4); margin: 10px; } img{ width: 100%; height: 150px; } h2{ font-size: 12pt; color: white; text-align: center; background-color: rgba(0,0,0,.5); padding: 10px 0px; font-weight: normal; } p{ font-size: 10pt; } </style> </head> <body> <section> <?php require 'classes/Produto_class.php'; $p = new Produto_class('formulario_produtos','infinityfree.net','root', '99583460'); <- aqui ta a parte do banco de dados $dadosProduto = $p->buscarProdutos(); if (empty($dadosProduto)) { echo 'Ainda não há produtos aqui'; }else { foreach ($dadosProduto as $value) { ?> <a href="exibir_produto.php"> <div> <img src="imagens/<?php echo $value['foto_capa'] ?>"> <h2><?php echo $value['nome_produto'] ?></h2> </div> </a> <?php } } ?> </section> </body> </html> e aqui tá a parte do banco de dados : <?php class Produto_class{ private $pdo; public function __construct($dbname, $host, $user, $senha) { try { $this->pdo = new PDO("mysql:dbname=".$dbname.";host=".$host,$user, $senha); } catch (PDOException $e) { echo 'erro com banco de dados :'.$e->getMessage(); } catch (Exception $e) { echo 'erro Generico :'.$e->getMessage(); } } public function enviarProduto($nome, $descricao, $fotos = array()) { //INSERIR PRODUTO ( TABELA DO PRODUTO ) $cmd = $this->pdo->prepare('INSERT INTO produtos(nome_produto, descricao) values (:n, :d)'); $cmd->bindValue(':n', $nome); $cmd->bindValue(':d', $descricao); $cmd->execute(); $id_produto = $this->pdo->LastInsertId(); //INSERIR AS IMAGENS DO PRODUTO (TABELA DE IMAGENS) if(count($fotos) > 0 )// Se veio imagens { for ($i=0; $i < count($fotos); $i++) { $nome_foto = $fotos[$i]; $cmd = $this->pdo->prepare('INSERT INTO imagens (nome_imagem, fk_id_produto) values (:n, :fk)'); $cmd->bindValue(':n', $nome_foto ); $cmd->bindValue(':fk', $id_produto); $cmd->execute(); } } } public function buscarProdutos()//TODOS { $cmd = $this->pdo->query('SELECT *, (SELECT nome_imagem from imagens where fk_id_produto = produtos.id_produto LIMIT 1) as foto_capa FROM produtos'); if($cmd->rowCount() > 0) { $dados = $cmd->fetchAll(PDO::FETCH_ASSOC); }else { $dados = array(); } return $dados; } public function buscarPrdutoPorId($id) { } public function buscarImagensPorId($id) { } }
       
      Já troquei a variavel $p = new Produto_class no arquivo que eu mandei pro servidor ..
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.