Jump to content
Rasp

mysqli statement + select view

Recommended Posts

Prezados,

 

Fiz em ambiente local (xampp) uma tela de login simples e está funcionando perfeitamente, sem apresentar qualquer erro, porém, ao subir para meu servidor web (ambos rodam PHP 7.1), o sistema de login não funciona, só gera a mensagem de erro de login e senha. Após verificar os possíveis erros, identifiquei que a consulta SQL não está funcionando, porém, no PHPmyAdmin funciona normalmente (no servidor web), estou usando uma view, mas não encontrei nada que tivesse o mesmo problema que estou passando.

 

Segue código:

 

if($sql = $mysqli->prepare("SELECT * FROM `vw_login` WHERE `login` = ? LIMIT 1")) {
	$sql->bind_param("s", $frmlogin);
	$sql->execute();
	$sql->bind_result($id, $nome, $hash);

	if($sql->fetch() AND Bcrypt::check($frmsenha, $hash)) {
		...
		header('Location: /');
	} else {
		session_destroy();
		$retorno = "Login ou senha incorretos.";
	}

	$sql->close();
}

Obrigado!

Share this post


Link to post
Share on other sites
Em 22/05/2018 at 10:52, Rasp disse:

Prezados,

 

Fiz em ambiente local (xampp) uma tela de login simples e está funcionando perfeitamente, sem apresentar qualquer erro, porém, ao subir para meu servidor web (ambos rodam PHP 7.1), o sistema de login não funciona, só gera a mensagem de erro de login e senha. Após verificar os possíveis erros, identifiquei que a consulta SQL não está funcionando, porém, no PHPmyAdmin funciona normalmente (no servidor web), estou usando uma view, mas não encontrei nada que tivesse o mesmo problema que estou passando.

 

Segue código:

 


if($sql = $mysqli->prepare("SELECT * FROM `vw_login` WHERE `login` = ? LIMIT 1")) {
	$sql->bind_param("s", $frmlogin);
	$sql->execute();
	$sql->bind_result($id, $nome, $hash);

	if($sql->fetch() AND Bcrypt::check($frmsenha, $hash)) {
		...
		header('Location: /');
	} else {
		session_destroy();
		$retorno = "Login ou senha incorretos.";
	}

	$sql->close();
}

Obrigado!

 

vw é uma view? se sim você colocou ela em seu servidor para efetuar a busca?

Share this post


Link to post
Share on other sites
4 horas atrás, igu disse:

 

vw é uma view? se sim você colocou ela em seu servidor para efetuar a busca?

 

Sim, como eu disse, migrei do xampp local para um servidor web, dentro do PHPMyAdmin ela roda perfeitamente, mas o statements mysqli do php não executa, porém, no xampp roda.

Share this post


Link to post
Share on other sites

Porque não tenta usar PDO?

Caso não conheça veja isso: https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/

 

$sql = $obj_de_conexao->prepare("SELECT * FROM vw_login WHERE login = :datalogin");
$sql->execute([':datalogin' => $frmsenha);
if ($sql->rowCount()) {
    echo "Existe";
} else {
    echo "Não existe";
}
  • Está usando encriptação de senha? Pesquise pelo login ou mail se existirem traga os dados do usuário, e depois compare a senha. Porque se pesquisar do seu jeito, como vai logar um usuário se pode existir mais de uma senha igual no banco?

 

  • Gostei 1

Share this post


Link to post
Share on other sites

Então @Omar~

 

Tudo já está desenvolvido para mysqli, não queria ter de misturar ou refazer tudo antes de ao menos conseguir entender se isso é um problema da biblioteca mysqli ou algum erro meu. Com relação ao meu login, ele funciona exatamente do jeito que você mencionou!  Eu só comparo a senha através da classe Bcrypt após ter retorno. Com relação a senha, utlizando Bcrypt nunca terá uma senha igual, pois é incluído um salt ao gerar o hash (https://secure.php.net/manual/pt_BR/function.crypt.php)

 

Obrigado por ter respondido! Estou sendo obrigado a colocar "UP" diariamente para ver se alguém pode me ajudar, ao invés disso, tem alguém que não tem conhecimento pelo jeito e vem negativar o comentário. Brasileiros...

 

Abraço!

Share this post


Link to post
Share on other sites
Em 27/05/2018 at 12:47, Rasp disse:

Então @Omar~

 

Tudo já está desenvolvido para mysqli, não queria ter de misturar ou refazer tudo antes de ao menos conseguir entender se isso é um problema da biblioteca mysqli ou algum erro meu. Com relação ao meu login, ele funciona exatamente do jeito que você mencionou!  Eu só comparo a senha através da classe Bcrypt após ter retorno. Com relação a senha, utlizando Bcrypt nunca terá uma senha igual, pois é incluído um salt ao gerar o hash (https://secure.php.net/manual/pt_BR/function.crypt.php)

 

Obrigado por ter respondido! Estou sendo obrigado a colocar "UP" diariamente para ver se alguém pode me ajudar, ao invés disso, tem alguém que não tem conhecimento pelo jeito e vem negativar o comentário. Brasileiros...

 

Abraço!

 

Olá tudo bem? Conseguiu descobrir o erro?? Estou com o mesmo problema. Obrigado

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 kelvinferraz
      Boa tarde Devs,
       
      Estou precisando de uma ajuda, estou desenvolvendo um sistema e a ideia é publica-lo na web para os meus clientes acessarem, porém gostaria de poder realizar a cobrança de acesso a esse sistema, cobrando uma taxa  mensal, alguém já desenvolveu algo do tipo e poderia me dar uma força?
       
      A ideia é o cliente acessar o site em seguida ir em cadastre-se, (nesse ponto abrirá uma opção de forma de pagamento ainda não sei qual API tentar utilizar PagSeguro, Paypal, MercadoPago) mas enfim o cliente só consegue se registrar e acessar após a confirmação do pagamento e consequentemente no mês seguinte para manter o acesso efetuar novamente o pagamento, como se fosse uma conta de acesso Netflix.
       
      Sei que deve ser complexo tentar implementar, porém se alguém tiver um case para poder me explicar já ajudaria.
       
       
      Obrigado
       
    • By emersonnnb
      Boa tarde pessoal, sou iniciante da área e estou tendo a dificuldade em deixar o menu do sidebar aberto, na verdade não sei como fazer.
      Quando é tudo na mesma pagina ok, usa o  tag class=active funciona normal.
      mas como fazer isso chamando header.php e footer.php .
       
      Segue as paginas que utilizo
       
      pagina header.php
      <!DOCTYPE html> <html lang="pt-br">   <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">     <title>GAP</title>     <link rel="icon" href="imagem/favicon.ico">     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">     <script defer src="js/fontawesome-all.min.js"></script>     <link rel="stylesheet" href="css/fontawesome.min.css">     <link rel="stylesheet" href="css/dashboard.css"> </head>   <body>     <!------------------- navbar --------------------------->     <nav class="navbar navbar-expand navbar-dark bg-primary">         <a class="sidebar-toggle text-light mr-3">             <span class="navbar-toggler-icon"></span>         </a>         <a class="navbar-brand" href="#">GAP</a>           <div class="collapse navbar-collapse">             <ul class="navbar-nav ml-auto">                 <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle menu-header" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown">                         <img class="rounded-circle" src="imagem/icon.png" width="20" height="20"> &nbsp;<span class="d-none d-sm-inline">Usuário</span>                     </a>                     <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">                         <a class="dropdown-item" href="#"><i class="fas fa-user"></i> Perfil</a>                         <a class="dropdown-item" href="logout.php"><i class="fas fa-sign-out-alt"></i> Sair</a>                     </div>                 </li>             </ul>         </div>     </nav>     <!------------------- Menu sidebar --------------------------->     <div class="d-flex">         <nav class="sidebar">             <ul class="list-unstyled">                 <li><a href="#"><i class="fas fa-tachometer-alt"></i> Dashboard</a></li>                 <li>                     <a href="#submenu1" data-toggle="collapse">                         <i class="fas fa-user"></i> Usuário                     </a>                     <ul id="submenu1" class="list-unstyled collapse">                         <li><a href="usuario_cadastrar.html"><i class="fas fa-user-plus"></i> Novo </a></li>                         <li><a href="usuario_listar.php"><i class="fas fa-users"></i> Usuários </a></li>                     </ul>                 </li>                 <li>                     <a href="#submenu2" data-toggle="collapse"><i class="fas fa-list-ul"></i> Produtos</a>                     <ul id="submenu2" class="list-unstyled collapse">                         <li><a href="#"><i class="fas fa-tags"></i> Cadastrar</a></li>                         <li><a href="#"><i class="far fa-list-alt"></i> Listar </a></li>                     </ul>                 </li>                 <li>                     <a href="#submenu3" data-toggle="collapse"><i class="fas fa-folder"></i> Categoria</a>                     <ul id="submenu3" class="list-unstyled collapse">                         <li><a href="#"><i class="fas fa-folder-plus"></i> Cadastrar</a></li>                         <li><a href="#"><i class="fas fa-folder-open"></i> Listar </a></li>                     </ul>                 </li>                 <li>                     <a href="#submenu4" data-toggle="collapse"><i class="fas fa-truck"></i> Fornecedor</a>                     <ul id="submenu4" class="list-unstyled collapse">                         <li><a href="#"><i class="fas fa-tags"></i> Cadastrar</a></li>                         <li><a href="#"><i class="far fa-list-alt"></i> Listar </a></li>                     </ul>                 </li>                 <li><a href="logout.php"><i class="fas fa-sign-out-alt"></i> Sair</a></li>             </ul>         </nav>  
      pagina teste.php
      <?php include "header.php"; ?>   <div class="content p-1">     <div class="list-group-item">         <div class="d-flex">             <div class="mr-auto p-2">                 <h2 class="display-4 titulo">Cadastrar Usuário</h2>             </div>         </div>         <hr>         <form action="usuario_include.php" method="GET">             <div class="form-row">                 <div class="form-group col-md-6">                     <label><span class="text-danger">*</span> Nome</label>                     <input name="nome" type="text" class="form-control" id="nome" placeholder="Nome Completo" required>                 </div>                 <div class="form-group col-md-6">                     <label><span class="text-danger">*</span> E-mail</label>                     <input name="email" type="email" class="form-control" id="email" placeholder="Seu e-mail" required>                 </div>             </div>             <div class="form-row">                 <div class="form-group col-md-6">                     <label><span class="text-danger">*</span> Senha</label>                     <input name="senha" type="password" class="form-control" id="senha" placeholder="A senha com mínimo de 6 caracteres" required minlength="6">                 </div>                 <div class="form-group col-md-6">                     <label><span class="text-danger">*</span> Confirmação de Senha</label>                     <input name="conf_senha" type="password" class="form-control" id="conf_senha" placeholder="Confirmar a senha" required required minlength="6">                 </div>             </div>               <div class="form-row">                 <div class="form-group col-md-6">                     <label>Endereço</label>                     <input name="endereco" type="text" class="form-control" id="endereco" placeholder="Rua João...">                 </div>                 <div class="form-group col-md-2">                     <label>Número</label>                     <input name="numero" type="text" class="form-control" id="numero" placeholder="123">                 </div>                 <div class="form-group col-md-4">                     <label>Complemento</label>                     <input name="complemento" type="text" class="form-control" id="complemento" placeholder="Sala, Apartamento">                 </div>             </div>               <div class="form-row">                 <div class="form-group col-md-5">                     <label>Estado</label>                     <select name="estado" id="estado" class="form-control">                         <option selected>Selecione</option>                         <option>...</option>                     </select>                 </div>                 <div class="form-group col-md-5">                     <label>Cidade</label>                     <select name="cidade" id="cidade" class="form-control">                         <option selected>Selecione</option>                         <option>...</option>                     </select>                 </div>                 <div class="form-group col-md-2">                     <label>CEP</label>                     <input name="cep" type="text" class="form-control" id="cep" placeholder="xx.xxxx-xxx">                 </div>             </div>             <div class="form-row">                 <div class="form-group col-md-2">                     <label>Login</label>                     <input name="login" type="text" class="form-control" id="login" placeholder="Insira um login" required>                 </div>                 <div class="form-group col-md-2">                     <label>Nivel de Acesso</label>                     <select name="nivel_acesso" id="nivel_acesso" class="form-control">                         <option selected>"Selecione"</option>                         <option value="1">Administrador</option>                         <option value="2">Usuario</option>                     </select>                 </div>                 <div class="form-check col-md-1 p-5">                     <input class="form-check-input" name="status" type="checkbox" value="ativo" id="status">                     <label class="form-check-label" for="defaultCheck1">                         Ativo                     </label>                 </div>                 <p>             </div>             <span class="text-danger">*</span> Campo Obrigatório             </p>             <button type="submit" class="btn btn-success">Cadastrar</button>         </form>     </div> </div> </div> </div> <!------------------- Modal para confirmar a exclusão de um registo---------------------------> <div class="modal fade" id="apagarRegistro" tabindex="-1" role="dialog" aria-labelledby="apagarRegistro" aria-hidden="true">     <div class="modal-dialog" role="document">         <div class="modal-content">             <div class="modal-header bg-danger text-white">                 <h5 class="modal-title" id="exampleModalLabel">Excluir item</h5>                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">                     <span aria-hidden="true">&times;</span>                 </button>             </div>             <div class="modal-body">                 Tem certeza que deseja excluiir o item selecionado?             </div>             <div class="modal-footer">                 <button type="button" class="btn btn-success" data-dismiss="modal">Cancelar</button>                 <button type="button" class="btn btn-danger">Apagar</button>             </div>         </div>     </div> </div>   <?php include "footer.php"; ?>
    • By JoãoRicardo.Lima
      Olá pessoal.
      Pessoal como eu faço o roteamento dos meus arquivos no meu projeto, pois sempre que inicio o meu servidor embutido do php em um diretório especifico, ele obviamente não "enxerga" as outras pastas, por exemplo. Eu tenho minha pasta com as views, mas qualquer link que eu coloco em uma view para ser redirecionado para ou view, o servidor não consegue achar o caminho, pois ele não conhece as outras pasta. Como eu faria este roteamento?.
    • By Pitag346
      Olá pessoal, tudo bem ? Estou com um probleminha, espero que me ajudem...
       
      Seguinte, tenho uma tabela onde faço a exibição de alguns dados, tais como:
       
      NOME, 
      QUANTIDADE, 
      VALOR
       
      Eu quero buscar o valor, em outra tabela e exibir dentro desse while. Porem, ele está exibindo em todos os resultados.
      Seguinte, 
      Cada usuário que efetuar uma vendo do produto tal, é salvo na tabela VENDIDOS, onde o mesmo armazena o "ticket_promote_id". 
      Ao fazer o while das vendas, quero pegar o valor do produto em outra tabela com o "ticket_promote_id" que mencionei acima, porem ao fazer isso, ele me retorna o valor de um produto em todos os resultados do while. 
       
      Alguém sabe por que ? Segue meu código abaixo:
      $valueTotali = 0; while($dados = mysqli_fetch_assoc($sql_promoters)){ $user = $dados['id']; $sqlIngress = $conn->query("SELECT * FROM vendidos WHERE ticket_promote_id = '$user' "); $cont = $sqlIngress->num_rows; if($cont > 0){ $dadosIngress = mysqli_fetch_assoc($sqlIngress); $loteId = $dadosIngress['ticket_lote_id']; $sqlLote = $conn->query("SELECT * FROM ingress WHERE lote_id = '$loteId' "); while($data = mysqli_fetch_assoc($sqlLote)){ $valueTotali += $data['lote_preco']; } }  
      Segue a imagem da tabela com o mesmo valor sendo replicado em todos os resultados:

       
       
    • By Marcos PP
      Alguém poderia me dar um exemplo de como pegar este retorno em Json para gravar em um banco de dados, a questão do banco e conexões não e necessário, apenas como pegar os retornos para trabalhar com eles


      Esta e a API
      http://click.omie.com/developer-0o843564k
×

Important Information

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