Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Compartilhar este post


Link para o post
Compartilhar em outros 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á.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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)

 

Compartilhar este post


Link para o post
Compartilhar em outros 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']."')");
  
}

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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']."')");
	}

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.