Hulkstar 1 Denunciar post Postado Maio 16, 2013 Então a questão é o seguinte,eu queria liberar para o usuário logar apenas se o e-mail for ativado,sem o e-mail,se o e-mail não for ativado ele não conseguira logar.. * Alguém poder me ajudar e ver no que ta faltando no meu código,tentei varias coisas mais não deu muito certo,continuou logando normalmente <?php include "smarty/libs/Smarty.class.php";$smarty = new Smarty(); $smarty->template_dir = "smarty/templates";$smarty->compile_dir = "smarty/templates_c";$smarty->config_dir = "smarty/configs";$smarty->cache_dir = "smarty/cache"; session_start(); if($_POST) {require_once 'config.php';$username = $_POST['username'];$password = $_POST['password']; $conn = mysql_connect($dbhost,$dbuser,$dbpass)or die ('Error connecting to mysql');mysql_select_db($dbname);$query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",mysql_real_escape_string($username),mysql_real_escape_string(md5($password)));$result = mysql_query($query);list($count) = mysql_fetch_row($result);if($count == 1) { $_SESSION['authenticated'] = true;$_SESSION['username'] = $username; $query = sprintf("UPDATE users SET last_login = NOW() WHERE UPPER(username) = UPPER('%s') AND password = '%s'",mysql_real_escape_string($username),mysql_real_escape_string(md5($password)));mysql_query($query); $query = sprintf("SELECT is_admin FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",mysql_real_escape_string($username),mysql_real_escape_string(md5($password)));$result = mysql_query($query);list($is_admin) = mysql_fetch_row($result);if($is_admin == 1) {header('Location:admin.php'); } else { print"<script> window.location='';</script>"; } } else { $error = 'Senha ou login estão incorretos'; }} $smarty->assign('error',$error);$smarty->display('login.tpl');?> Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Maio 16, 2013 Um campo status onde 0 -> inativo e 1 -> ativo, antes de logar verifica o status também. Quando ele se cadastrar se for o caso, se cadastra com o status 0 e você envia um email de confirmação, quando confirmado muda o status dinamicamente para 1 Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 16, 2013 Sim ele cadastra como 0 ao ativar ele fica 1 Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Maio 16, 2013 E falta o q? Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 16, 2013 então no caso so queria deixar o usuário logar,apenas se ele ativar o e-mail,sem ativar ele loga com sucesso seria possível fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Maio 16, 2013 sim é possível, mas o que falta? Enviar o email , verificar o link, colocar a validação de status no login? Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 16, 2013 então o que ta acontecendo é o seguinte,cadastrar envia o link certinho para o e-mail,ao clicar no link valida o e-mail tudo blz,mais ai vem o problema eu queria arrumar uma maneira de liberar a conta para o usuário somente depois de o link ser validado,mais validando ou não o e-mail ele consegue acessar a conta. No caso creio que sim,queria uma forma, tipo assim valido o e-mail = consegue acessar conta,não valido e-mail = não consegue acessar conta. Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Maio 16, 2013 Coloca a validação do status na página de login se o email digitado for correto // valida senão se a senha digitada for correta // valida senão se o status != '1' // erro sua conta não está ativa --- Tudo baseado no que você disse aqui Sim ele cadastra como 0 ao ativar ele fica 1 Compartilhar este post Link para o post Compartilhar em outros sites
webdevbr 35 Denunciar post Postado Maio 16, 2013 use o select com um where validado = 1 Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 16, 2013 Rogério Santana fiz algumas alterações e talzs..mais continua logando,olha como esta o código... $query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username,email) = UPPER('%s','%s') AND password='%s'",mysql_real_escape_string($username),mysql_real_escape_string($email),mysql_real_escape_string(md5($password)));$result = mysql_query($query);list($count) = mysql_fetch_row($result);if($count == 1) { webdevbr se estiver ai da uma olhada para ver se é algo do jeito que estou fazendo. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 16, 2013 $query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username,email) = UPPER('%s','%s') AND password='%s' AND campo_validacao = '1'", Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 17, 2013 então tentei assim e outras maneiras,mais agora ta dando um erro na linha 26,não sei o que possa ser,alguém tem algum palpite? $query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username,email) = UPPER('%s','%s') AND password='%s' AND confirmed = '1'", mysql_real_escape_string($username), mysql_real_escape_string($email), mysql_real_escape_string(md5($password))); $result = mysql_query($query); list($count) = mysql_fetch_row($result); if($count == 1) { a linha 26 é a: list($count) = mysql_fetch_row($result); lol ninguém aqui no fórum tem uma sugestão para o meu caso não? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 17, 2013 Sugestão? Sim, comece estudando lógica de algoritmos, sem isto você não programa nada... No seu último erro, o problema é na query, use OR DIE(mysql_error()) para ver qual o problema. Compartilhar este post Link para o post Compartilhar em outros sites
Hulkstar 1 Denunciar post Postado Maio 17, 2013 ta mais em cima do que estou trabalhando,seria possível alguém me ajudar a desenvolver ou não tem como? Enfim consegui resolver meu problema,muito feliz por ter conseguido exito,agradeço a todos que colocaram boa vontade para me ajudar... Compartilhar este post Link para o post Compartilhar em outros sites