Jump to content
richard nicson

Criar sistema de bloqueio Conta pelo SQL

Recommended Posts

Boa tarde,estou com uma dúvida preciso criar algo que exiba mensagem para o usuário que tentar acessar a conta dele mas estiver com o campo Ativado na opção 2 de "Sua conta foi bloqueada."

 

Eu já possuo um campo em todas as contas chamado ativado onde automáticamente é inserido o valor 1 de ativado.

Porém usuários que efetuarem algo errado irei bloquear a conta atualizando o valor no sql para 2.

 

Mas de acordo com meu código fiz alguns testes e não está sendo satisfatório,peço auxilio de vocês.

 

abaixo o script de verificar a conta.

 

<?php
session_start();  // Inicia a session

include "config.php"; 

$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

if ((!$usuario) || (!$senha)){

echo "Por favor, todos campos devem ser preenchidos! <br /><br />";

include "logar.php";

}else{

$sql = mysql_query(

"SELECT * FROM usuarios
WHERE (usuario='$usuario' OR email='$usuario')
AND senha='{$senha}'"

);
$login_check = mysql_num_rows($sql);

if ($login_check > 0){

while ($row = mysql_fetch_array($sql)){

foreach ($row AS $key => $val){

$$key = stripslashes( $val );

}

$_SESSION['usuario_id'] = $usuario_id;
$_SESSION['nome'] = $nome;
$_SESSION['sobrenome'] = $sobrenome;
$_SESSION['email'] = $email;
$_SESSION['nivel_usuario'] = $nivel_usuario;

mysql_query(

"UPDATE usuarios SET data_ultimo_login = now()
WHERE usuario_id ='{$usuario_id}'"

);
?>
 <meta http-equiv="refresh" content="0; index.php?page=painel">
<?php
}
}else{
echo "Voce nao pode logar-se! Este usuario e/ou senha nao sao validos!<br />
Por favor tente novamente!<br />";

include "logar.php";

}

}

?>

 

Share this post


Link to post
Share on other sites

acho que não precisa desse while e nem do foreach pois se espera que tenha só um usuário com tal email e/ou usarname então pode mandar o $row direto

$row = mysql_fetch_array($sql);

if($row['ativado'] == 2){
    // bloquear acesso
}

 

  • Gostei 1

Share this post


Link to post
Share on other sites
11 minutos atrás, marsolim disse:

acho que não precisa desse while e nem do foreach pois se espera que tenha só um usuário com tal email e/ou usarname então pode mandar o $row direto


$row = mysql_fetch_array($sql);

if($row['ativado'] == 2){
    // bloquear acesso
}

 

Olá Marlin agradeço sua resposta,retirei o foreach e while,inseri o row porém parece que não está criando a session pois da uma resposta de você não está logado,quando direciona.

Segue abaixo o código modificado.

 

<?php
session_start();  // Inicia a session

include "config.php"; 

$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

if ((!$usuario) || (!$senha)){

echo "Por favor, todos campos devem ser preenchidos! <br /><br />";

include "logar.php";

}else{

$sql = mysql_query(

"SELECT * FROM usuarios
WHERE (usuario='$usuario' OR email='$usuario')
AND senha='{$senha}'"

);
$row = mysql_fetch_array($sql);
if($row > 0){
if ($row['ativado'] == 2){
    echo "Sua conta está bloqueada";
}else{

$_SESSION['usuario_id'] = $usuario_id;
$_SESSION['nome'] = $nome;
$_SESSION['sobrenome'] = $sobrenome;
$_SESSION['email'] = $email;
$_SESSION['nivel_usuario'] = $nivel_usuario;

mysql_query(

"UPDATE usuarios SET data_ultimo_login = now()
WHERE usuario_id ='{$usuario_id}'"

);
?>
 <meta http-equiv="refresh" content="0; index.php?page=painel">
<?php
}}else{
echo "Voce nao pode logar-se! Este usuario e/ou senha nao sao validos!<br />
Por favor tente novamente!<br />";

include "logar.php";

}

}

?>

 

Share this post


Link to post
Share on other sites
1 hora atrás, richard nicson disse:

$_SESSION['usuario_id'] = $usuario_id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['email'] = $email; $_SESSION['nivel_usuario'] = $nivel_usuario;

Essas variáveis não seriam:

$_SESSION['usuario_id'] = $row['usuario_id'];

Ou elas estão vindo de algum lugar não especificado por você ali em cima?

  • Gostei 1

Share this post


Link to post
Share on other sites
22 minutos atrás, Gleyson Abreu disse:

Essas variáveis não seriam:

$_SESSION['usuario_id'] = $row['usuario_id'];

Ou elas estão vindo de algum lugar não especificado por você ali em cima?

 

Era isso mesmo,muito obrigado..

 

Script está funcionando perfeitamente...

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 johnklo
      COM BASE NA TABELA HR DO ORACLE
      Preciso criar uma sub-rotina (procedure) que imprima na tela o número de funcionários (employees) agrupados por departamentos (department_id). Deve-se ordenar a saída em ordem decrescente pela quantidade de departamentos. Pode-se utilizar qualquer forma de cursor para imprimir o resultado.
    • By c3s1nha
      Boa tarde,
       
      Preciso restaurar a estrutura de um banco de dados (tabelas,views,procedures.. etc) em outro banco de dados que esta vazio (nao tem tabela nenhuma, banco novo), utilizo o sql server. Consigo fazer utilizando o SSMS ?
       
      Para entender melhor estou enviando uma imagem.
       
       
      O banco com todas tabelas,viwes,procedures, registros, etc..  é o Guara_ que esta no servidor   .\SQLEXPRESS   quero fazer uma copia identica dele no banco Nutri no servidor sdb.hsi.
       
      Desde ja agradeço. 

    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
×

Important Information

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