Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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";
}
}
?>>
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";
}
}
?>>
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?>
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...
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