Ir para conteúdo

POWERED BY:

Arquivado

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

Gabriel T.

[Resolvido] Bloquear Senha Já Utilizada

Recommended Posts

Olá pessoal.

Bom, eu estou tentando fazer um mecanismo de bloqueio de senhas já utilizadas para acessar uma página, ou seja, a do cadastro.

Meu pensamento é assim:

 

O usuário adquiri uma senha unica comprando pelo boleto, e então ele recebe no e-mail dele.

O usuário inclui a senha em uma página para redirecionar à página de cadastro.

O usuário faz o cadastro normalmente.

 

Então, eu pensei em fazer algo assim:

 

Depois que o usuário inclui a senha dele para o cadastro, o php faz um update na tabela "senhas" em um valor, que se chama "verificas", de "nova" para "usada".

 

Caso o usuário incluir a senha outra vez para fazer um novo cadastro, o php verifica se o valor "verificas" está como "nova" ou "usada".

 

Se estiver como "usada", irá aparecer um alerta dizendo que essa senha já foi utilizada para o cadastro.

Olha meu arquivo "validar.php":

 

<?
	session_start();	
	include "conexao.php";	
	$senhaboleto = $_POST['senhaboleto'];
	
	$sql = mysql_query("SELECT * FROM senhas WHERE senhas = '$senhaboleto'");
	
	if(empty($senhaboleto)){
	echo "<script>alert('Por favor, digite a senha que foi enviada ao seu e-mail após a confirmação do pagamento. Se ainda não adquiriu a senha, clique em Nosso Espaço, no menu do site.')</script>";
	echo "<script>history.go(-1)</script>";
	exit;
	}
	if(mysql_num_rows($sql) == 0){
	unset($_SESSION['senhaboleto']);	
	echo "<script>alert('A senha que você digitou não existe em nosso registro. Se ainda não adquiriu a senha, clique em Nosso Espaço, no menu do site.')</script>";
	echo "<script>history.go(-1)</script>";
	exit;
	}else{
		$_SESSION['senhaboleto'] = $senhaboleto;	
		
		mysql_query("UPDATE senhas SET verificas='usada' WHERE senhas = '$senhaboleto'");
		
		header("Location: cadastro.php");
	}
	if(mysql_query("SELECT * FROM senhas WHERE verificas = 'usada'")){
	echo "<script>alert('Essa senha já foi utilizada para o cadastro.')</script>";
	echo "<script>history.go(-1)</script>";
	exit;
	}
	
?>

Eu estava tentando assim, mas ainda não consegui.

Alguém tem alguma sugestão?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites


 if(mysql_query("SELECT * FROM senhas WHERE verificas = 'usada' && senha='$senhaDoBoleto'")){
 echo "<script>alert('Essa senha já foi utilizada para o cadastro.')</script>";
 echo "<script>history.go(-1)</script>";
 exit;
 }


 

Coloca ai o codigo da tabela de senhas para q eu possa te ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites


 if(mysql_query("SELECT * FROM senhas WHERE verificas = 'usada' && senha='$senhaDoBoleto'")){
 echo "<script>alert('Essa senha já foi utilizada para o cadastro.')</script>";
 echo "<script>history.go(-1)</script>";
 exit;
 }


 

Coloca ai o codigo da tabela de senhas para q eu possa te ajudar!

 

Opa, obrigado. Deu certo.

Muito obrigado mesmo.

Vou deixar aqui a tabela.

É uma tabela simples...

 

--
-- Estrutura da tabela `senhas`
--

CREATE TABLE IF NOT EXISTS `senhas` (
  `senhas` varchar(20) NOT NULL,
  `verificas` varchar(20) NOT NULL default 'nova'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Obrigado denovo. :)

Tópico resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe por "ressuscitar" o tópico, mas descobri outro erro.

Quando eu incluo uma senha nova para redirecionar à página de cadastro, mesmo assim avisa o alerta que a senha já foi utilizada.

Me desculpe denovo, mas criar outro tópico com o mesmo assunto eu acho que seria mais desagradável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modifiquei um pouco seu codigo e a sua tabela espero q não se importe!

 

<?php
ob_start();
session_start(); 
 	
 	$senhaboleto = $_POST['senhaboleto'];

 	$sql = "SELECT usada FROM senhas WHERE senhas = '$senhaboleto'";
	
 	$sql = mysql_query($sql) or die (mysql_error());
 	
 	//seta variavel para verificar depois
 	list($usada) = mysql_fetch_array($sql);
 
 	if(empty($senhaboleto)){
 	echo "<script>alert('Por favor, digite a senha que foi enviada ao seu e-mail após a confirmação do pagamento. Se ainda não adquiriu a senha, clique em Nosso Espaço, no menu do site.')</script>";
 	echo "<script>history.go(-1)</script>";
 	exit;
 	}elseif($usada == 'S'){
 	echo "<script>alert('Essa senha já foi utilizada para o cadastro.')</script>";
 	echo "<script>history.go(-1)</script>";
 	exit;			
		}
 	
 	if(mysql_num_rows($sql) == 0){
 	unset($_SESSION['senhaboleto']); 	
 	echo "<script>alert('A senha que você digitou não existe em nosso registro. Se ainda não adquiriu a senha, clique em Nosso Espaço, no menu do site.')</script>";
 	echo "<script>history.go(-1)</script>";
 	exit;
 	}else{
 	$_SESSION['senhaboleto'] = $senhaboleto; 
 	
 	//Marca senha como usada 	
 	mysql_query("UPDATE senhas SET usada='S' WHERE senhas = '$senhaboleto'");
 	
 	//Redireciona	
 	header("Location: cadastro.php");
 	}
 	
ob_end_flush();
 	
?>

Agora atabela do banco de dados


CREATE TABLE IF NOT EXISTS `senhas` (
 `senhas` varchar(20) NOT NULL,
 `usada` enum('S','N') NOT NULL DEFAULT 'N',
 UNIQUE KEY `senhas` (`senhas`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Testa ai pra ver se funciona!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda amigo, mas não deu certo...

Quando eu coloco a senha aparece essa mensagem:

 

Acesso negado para o usuário 'homeprod'@'localhost' (senha usada: NÃO)

 

O que poderia ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

include "conexao.php";

 

Faltou...

 

Era isso mesmo...

rsrs

Obrigado por avisar.

Já está funcionando certinho.

Muito obrigado pessoal, me ajudaram muito.

Até mais.

Tópico resolvido (2) :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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